Функции для работы с данными
Скалярные вспомогательные функции
Функции ниже трудно отнести к конкретным типам и обладают широким спектром применений.
| Имя | Описание |
|---|---|
alias(column) | Возвращает имя столбца. |
checkpoint(database) | Синхронизирует WAL с файлом для (необязательной) базы данных без прерывания транзакций. |
coalesce(expr, ...) | Возвращает первое выражение, которое вычисляется как значение, отличное от NULL. Принимает 1 или более параметров. Каждое выражение может быть столбцом, литеральным значением, результатом функции или многим другим. |
constant_or_null(arg1, arg2) | Если arg2 равно NULL, возвращает NULL. В противном случае, возвращает arg1. |
count_if(x) | Возвращает 1, если x равно true или ненулевому числу. |
current_catalog() | Возвращает имя текущего активного каталога. По умолчанию – память. |
current_schema() | Возвращает имя текущей активной схемы. По умолчанию – главная. |
current_schemas(boolean) | Возвращает список схем. Передайте параметр true для включения неявных схем. |
current_setting('setting_name') | Возвращает текущее значение параметра настройки. |
currval('sequence_name') | Возвращает текущее значение последовательности. Обратите внимание, что nextval должно быть вызвано как минимум один раз перед вызовом currval. |
error(message) | Выбрасывает заданную ошибку message. |
force_checkpoint(database) | Синхронизирует WAL с файлом для (необязательной) базы данных с прерыванием транзакций. |
gen_random_uuid() | Псевдоним для uuid. Возвращает случайный UUID, похожий на этот: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
getenv(var) | Возвращает значение переменной окружения var. Доступно только в клиенте командной строки. |
hash(value) | Возвращает UBIGINT с хэшем value. |
icu_sort_key(string, collator) | Заместительный ключ, используемый для сортировки специальных символов в соответствии с конкретным языковым стандартом. Параметр collator необязателен. Действителен только при установленной расширении ICU. |
if(a, b, c) | Условный оператор с тремя операндами. |
ifnull(expr, other) | Двухаргументная версия coalesce. |
md5(string) | Возвращает MD5-хэш string в виде VARCHAR. |
md5_number(string) | Возвращает MD5-хэш string в виде HUGEINT. |
md5_number_lower(string) | Возвращает нижний 64-битный сегмент MD5-хэша string в виде BIGINT. |
md5_number_higher(string) | Возвращает верхний 64-битный сегмент MD5-хэша string в виде BIGINT. |
nextval('sequence_name') | Возвращает следующее значение последовательности. |
nullif(a, b) | Возвращает NULL если a = b, иначе возвращает a. Эквивалентно CASE WHEN a = b THEN NULL ELSE a END. |
pg_typeof(expression) | Возвращает имя типа данных результата выражения в нижнем регистре. Для совместимости с PostgreSQL. |
query(query_string_literal) | Функция таблицы, которая анализирует и выполняет запрос, определенный в query_string_literal. Разрешены только литеральные строки. Предупреждение: эта функция позволяет вызывать произвольные запросы, потенциально изменяя состояние базы данных. |
query_table(tbl_name) | Функция таблицы, которая возвращает таблицу, указанную в tbl_name. |
query_table(tbl_names, [by_name]) | Функция таблицы, которая возвращает объединение таблиц, указанных в tbl_names. Если необязательный параметр by_name установлен в true, используются семантика UNION ALL BY NAME. |
read_blob(source) | Возвращает содержимое из source (имя файла, список имен файлов или шаблон glob) в виде BLOB. Для получения дополнительной информации см. read_blob руководство. |
read_text(source) | Возвращает содержимое из source (имя файла, список имен файлов или шаблон glob) в виде VARCHAR. Сначала проверяется, что содержимое файла соответствует кодировке UTF-8. Если read_text пытается прочитать файл с некорректной кодировкой UTF-8, выбрасывается ошибка, предлагающая использовать read_blob вместо этого. Для получения дополнительной информации см. read_text руководство. |
sha256(value) | Возвращает VARCHAR с хэшем SHA-256 value. |
stats(expression) | Возвращает строку со статистикой по выражению. Выражение может быть столбцом, константой или SQL-выражением. |
txid_current() | Возвращает идентификатор текущей транзакции, значение BIGINT . Присваивает новое значение, если текущая транзакция еще не имеет идентификатора. |
typeof(expression) | Возвращает имя типа данных результата выражения. |
uuid() | Возвращает случайный UUID, похожий на этот: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
version() | Возвращает текущую активную версию DuckDB в указанном формате. |
alias(column)
| Описание | Возвращает имя столбца. |
| Пример | alias(column1) |
| Результат | column1 |
checkpoint(database)
| Описание | Синхронизирует WAL с файлом для (необязательной) базы данных без прерывания транзакций. |
| Пример | checkpoint(my_db) |
| Результат | success Boolean |
coalesce(expr, ...)
| Описание | Возвращает первое выражение, которое вычисляется как значение, отличное от NULL. Принимает 1 или более параметров. Каждое выражение может быть столбцом, литеральным значением, результатом функции или многим другим. |
| Пример | coalesce(NULL, NULL, 'default_string') |
| Результат | default_string |
constant_or_null(arg1, arg2)
| Описание | Если arg2 равно NULL, возвращает NULL. В противном случае, возвращает arg1. |
| Пример | constant_or_null(42, NULL) |
| Результат | NULL |
count_if(x)
| Описание | Возвращает 1, если x равно true или ненулевому числу. |
| Пример | count_if(42) |
| Результат | 1 |
current_catalog()
| Описание | Возвращает имя текущего активного каталога. По умолчанию — память. |
| Пример | current_catalog() |
| Результат | memory |
current_schema()
| Описание | Возвращает имя текущей активной схемы. По умолчанию — main. |
| Пример | current_schema() |
| Результат | main |
current_schemas(boolean)
| Описание | Возвращает список схем. Передайте параметр true, чтобы включить неявные схемы. |
| Пример | current_schemas(true) |
| Результат | ['temp', 'main', 'pg_catalog'] |
current_setting('setting_name')
| Описание | Возвращает текущее значение параметра конфигурации. |
| Пример | current_setting('access_mode') |
| Результат | automatic |
currval('sequence_name')
| Описание | Возвращает текущее значение последовательности. Обратите внимание, что nextval должно быть вызвано хотя бы один раз перед вызовом currval. |
| Пример | currval('my_sequence_name') |
| Результат | 1 |
error(message)
| Описание | Выбрасывает указанную ошибку message. |
| Пример | error('access_mode') |
force_checkpoint(database)
| Описание | Синхронизирует WAL с файлом для (необязательного) прерывания транзакций базы данных. |
| Пример | force_checkpoint(my_db) |
| Результат | success Boolean |
gen_random_uuid()
| Описание | Псевдоним uuid. Возвращает случайный UUID, подобный этому: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
| Пример | gen_random_uuid() |
| Результат | разные |
getenv(var)
| Описание | Возвращает значение переменной окружения var. Доступно только в клиенте командной строки. |
| Пример | getenv('HOME') |
| Результат | /path/to/user/home |
hash(value)
| Описание | Возвращает UBIGINT с хэшем value. |
| Пример | hash('🦆') |
| Результат | 2595805878642663834 |
icu_sort_key(string, collator)
| Описание | Заместительный ключ, используемый для сортировки специальных символов в соответствии с конкретным языковым стандартом. Параметр Collator необязателен. Действителен только при установленной расширении ICU. |
| Пример | icu_sort_key('ö', 'DE') |
| Результат | 460145960106 |
if(a, b, c)
| Описание | Условный оператор «если-то-иначе»; возвращает b, если a, иначе возвращает c. Эквивалентно CASE WHEN a THEN b ELSE c END. |
| Пример | if(2 > 1, 3, 4) |
| Результат | 3 |
ifnull(expr, other)
| Описание | Двухаргументная версия coalesce. |
| Пример | ifnull(NULL, 'default_string') |
| Результат | default_string |
md5(string)
| Описание | Возвращает хэш MD5 string в формате VARCHAR. |
| Пример | md5('123') |
| Результат | 202cb962ac59075b964b07152d234b70 |
md5_number(string)
| Описание | Возвращает хэш MD5 string в формате HUGEINT. |
| Пример | md5_number('123') |
| Результат | 149263671248412135425768892945843956768 |
md5_number_lower(string)
| Описание | Возвращает хэш MD5 string в формате BIGINT. |
| Пример | md5_number_lower('123') |
| Результат | 8091599832034528150 |
md5_number_higher(string)
| Описание | Возвращает хэш MD5 string в формате BIGINT. |
| Пример | md5_number_higher('123') |
| Результат | 6559309979213966368 |
nextval('sequence_name')
| Описание | Возвращает следующее значение последовательности. |
| Пример | nextval('my_sequence_name') |
| Результат | 2 |
nullif(a, b)
| Описание | Возвращает null, если a = b, иначе возвращает a. Эквивалентно CASE WHEN a = b THEN NULL ELSE a END. |
| Пример | nullif(1+1, 2) |
| Результат | NULL |
pg_typeof(expression)
| Описание | Возвращает строковое название типа данных результата выражения в нижнем регистре. Совместимость с PostgreSQL. |
| Пример | pg_typeof('abc') |
| Результат | varchar |
query(query_string_literal)
| Описание | Функция таблицы, которая анализирует и выполняет запрос, определенный в query_string_literal. Разрешены только строковые литералы. Предупреждение: эта функция позволяет вызывать произвольные запросы, потенциально изменяя состояние базы данных. |
| Пример | query('SELECT 42 AS x') |
| Результат | 42 |
query_table(tbl_name)
| Описание | Функция таблицы, которая возвращает таблицу, указанную в tbl_name. |
| Пример | query(t1) |
| Результат | (строки из t1) |
query_table(tbl_names, [by_name])
| Описание | Функция таблицы, которая возвращает объединение таблиц, указанных в tbl_names. Если необязательный параметр by_name установлен в true, используются семантика UNION ALL BY NAME. |
| Пример | query(['t1', 't2']) |
| Результат | (объединение двух таблиц) |
read_blob(source)
END_OF_DOCUMENT_MARKER | Описание | Возвращает содержимое из source (имя файла, список имен файлов или шаблон glob) в виде BLOB. Подробности см. в руководстве read_blob. |
| Пример | read_blob('hello.bin') |
| Результат | hello\x0A |
read_text(source)
| Описание | Возвращает содержимое из source (имя файла, список имен файлов или шаблон glob) в виде VARCHAR. Содержимое файла сначала проверяется на соответствие кодировке UTF-8. Если read_text пытается прочитать файл с некорректной кодировкой UTF-8, выбрасывается ошибка с предложением использовать read_blob вместо этого. Подробности см. в руководстве read_text. |
| Пример | read_text('hello.txt') |
| Результат | hello\n |
sha256(value)
| Описание | Возвращает VARCHAR с хешем SHA-256 value. |
| Пример | sha256('🦆') |
| Результат | d7a5c5e0d1d94c32218539e7e47d4ba9c3c7b77d61332fb60d633dde89e473fb |
stats(expression)
| Описание | Возвращает строку со статистикой об выражении. Выражение может быть столбцом, константой или SQL-выражением. |
| Пример | stats(5) |
| Результат | '[Min: 5, Max: 5][Has Null: false]' |
txid_current()
| Описание | Возвращает идентификатор текущей транзакции, значение BIGINT. Если текущая транзакция еще не имеет идентификатора, он будет присвоен новый. |
| Пример | txid_current() |
| Результат | различные |
typeof(expression)
| Описание | Возвращает имя типа данных результата выражения. |
| Пример | typeof('abc') |
| Результат | VARCHAR |
uuid()
| Описание | Возвращает случайный UUID, похожий на этот: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
| Пример | uuid() |
| Результат | различные |
version()
| Описание | Возвращает текущую активную версию DuckDB в этом формате. |
| Пример | version() |
| Результат | различные |
Функции служебных таблиц
Функция таблицы используется вместо таблицы в FROM разделе.
| Имя | Описание |
|---|---|
glob(search_path) | Возвращает имена файлов, найденные в указанном месте search_path в одном столбце с именем file. search_path может содержать синтаксис поиска по шаблону glob. |
repeat_row(varargs, num_rows) | Возвращает таблицу с num_rows строками, каждая из которых содержит поля, определённые в varargs. |
glob(search_path)
| Описание | Возвращает имена файлов, найденные в указанном месте search_path в одном столбце с именем file. search_path может содержать синтаксис поиска по шаблону glob. |
| Пример | glob('*') |
| Результат | (таблица имен файлов) |
repeat_row(varargs, num_rows)
| Описание | Возвращает таблицу с num_rows строками, каждая из которых содержит поля, определённые в varargs. |
| Пример | repeat_row(1, 2, 'foo', num_rows = 3) |
| Результат | 3 строки 1, 2, 'foo'
|
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/functions/utility.html