Функции кодирования
char
Возвращает строку, длина которой равна числу переданных аргументов, и каждый байт имеет значение соответствующего аргумента. Принимает несколько числовых аргументов. Если значение аргумента выходит за диапазон UInt8 (0..255), то оно преобразуется в UInt8 с возможным округлением и переполнением.
Синтаксис
Аргументы
number_1, number_2, ..., number_n
— числовые аргументы, которые интерпретируются как целые числа. Типы: Int, Float.
Возвращаемое значение
- Строка из соответствующих байт.
Тип: String.
Пример
Запрос:
Результат:
Вы можете создать строку в произвольной кодировке, передав соответствующие байты. Пример для UTF-8:
Запрос:
Результат:
Запрос:
Результат:
hex
Возвращает строку, содержащую шестнадцатеричное представление аргумента.
Синоним: HEX
.
Синтаксис
Функция использует прописные буквы A-F
и не использует никаких префиксов (например, 0x
) или суффиксов (например, h
).
Для целочисленных аргументов возвращает шестнадцатеричные цифры от наиболее до наименее значимых (big endian
, человекочитаемый порядок).Он начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда выводит обе цифры каждого байта, даже если начальная цифра равна нулю.
Значения типа Date и DateTime формируются как соответствующие целые числа (количество дней с момента Unix-эпохи для Date
и значение Unix Timestamp для DateTime
).
Для String и FixedString, все байты просто кодируются как два шестнадцатеричных числа. Нулевые байты не опущены.
Значения Float и Decimal кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру little-endian
, они кодируются от младшего к старшему байту. Нулевые начальные/конечные байты не опущены.
Аргументы
arg
— значение для преобразования в шестнадцатеричное. String, UInt, Float, Decimal, Date или DateTime.
Возвращаемое значение
- Строка — шестнадцатеричное представление аргумента.
Тип: String.
Примеры
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
unhex(str)
Выполняет операцию, обратную hex. Функция интерпретирует каждую пару шестнадцатеричных цифр аргумента как число и преобразует его в символ. Возвращаемое значение представляет собой двоичную строку (BLOB).
Если вы хотите преобразовать результат в число, вы можете использовать функции reverse и reinterpretAs<Type>.
Если unhex
вызывается из clickhouse-client
, двоичные строки отображаются с использованием UTF-8.
Синоним: UNHEX
.
Синтаксис
Аргументы
arg
— Строка, содержащая любое количество шестнадцатеричных цифр. Тип: String.
Поддерживаются как прописные, так и строчные буквы A-F
. Количество шестнадцатеричных цифр не обязательно должно быть четным. Если оно нечетное, последняя цифра интерпретируется как наименее значимая половина байта 00-0F
. Если строка аргумента содержит что-либо, кроме шестнадцатеричных цифр, возвращается некоторый результат, определенный реализацией (исключение не создается).
Возвращаемое значение
- Бинарная строка (BLOB).
Тип: String.
Пример
Запрос:
Результат:
Запрос:
Результат:
bin
Возвращает строку, содержащую бинарное представление аргумента.
Синтаксис
Синоним: BIN
.
Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (big-endian
, человекочитаемый порядок). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю.
Значения типа Date и DateTime формируются как соответствующие целые числа (количество дней с момента Unix-эпохи для Date
и значение Unix Timestamp для DateTime
).
Для String и FixedString все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены.
Значения Float и Decimal кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру little-endian
, они кодируются от младшего к старшему байту. Нулевые начальные/конечные байты не опущены.
Аргументы
arg
— значение для преобразования в двоичный код. String, FixedString, UInt, Float, Decimal, Date или DateTime.
Возвращаемое значение
- Бинарная строка (BLOB) — двоичное представление аргумента.
Тип: String.
Примеры
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
unbin
Интерпретирует каждую пару двоичных цифр аргумента как число и преобразует его в байт, представленный числом. Функция выполняет операцию, противоположную bin.
Синтаксис
Синоним: UNBIN
.
Для числового аргумента unbin()
не возвращает значение, обратное результату bin()
. Чтобы преобразовать результат в число, используйте функции reverse и reinterpretAs<Type>.
Если unbin
вызывается из клиента clickhouse-client
, бинарная строка возвращается в кодировке UTF-8.
Поддерживает двоичные цифры 0
и 1
. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает).
Аргументы
arg
— строка, содержащая любое количество двоичных цифр. String.
Возвращаемое значение
- Бинарная строка (BLOB).
Тип: String.
Примеры
Запрос:
Результат:
Запрос:
Результат:
UUIDStringToNum(str)
Принимает строку, содержащую 36 символов в формате 123e4567-e89b-12d3-a456-426655440000
, и возвращает в виде набора байт в FixedString(16).
UUIDNumToString(str)
Принимает значение типа FixedString(16). Возвращает строку из 36 символов в текстовом виде.
bitmaskToList(num)
Принимает целое число. Возвращает строку, содержащую список степеней двойки, в сумме дающих исходное число; по возрастанию, в текстовом виде, через запятую, без пробелов.
bitmaskToArray(num)
Принимает целое число. Возвращает массив чисел типа UInt64, содержащий степени двойки, в сумме дающих исходное число; числа в массиве идут по возрастанию.
bitPositionsToArray(num)
Принимает целое число и приводит его к беззнаковому виду. Возвращает массив UInt64
чисел, который содержит список позиций битов arg
, равных 1
, в порядке возрастания.
Синтаксис
Аргументы
arg
— целое значение. Int/UInt.
Возвращаемое значение
- Массив, содержащий список позиций битов, равных
1
, в порядке возрастания.
Примеры
Запрос:
Результат:
Запрос:
Результат: