ClickHouse/docs/fr/sql-reference/functions/encoding-functions.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

5.5 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 52 Encodage

Lencodage Des Fonctions

char

Retourne la chaîne avec la longueur que le nombre darguments passés et chaque octet a la valeur de largument correspondant. Accepte plusieurs arguments de types numériques. Si la valeur de largument est hors de portée du type de données UInt8, elle est convertie en UInt8 avec arrondi et débordement possibles.

Syntaxe

char(number_1, [number_2, ..., number_n]);

Paramètre

  • number_1, number_2, ..., number_n — Numerical arguments interpreted as integers. Types: Int, Flottant.

Valeur renvoyée

  • une chaîne doctets.

Type: String.

Exemple

Requête:

SELECT char(104.1, 101, 108.9, 108.9, 111) AS hello

Résultat:

┌─hello─┐
│ hello │
└───────┘

Vous pouvez construire une chaîne de codage arbitraire en passant les octets correspondants. Voici un exemple pour UTF-8:

Requête:

SELECT char(0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xB8, 0xD0, 0xB2, 0xD0, 0xB5, 0xD1, 0x82) AS hello;

Résultat:

┌─hello──┐
│ привет │
└────────┘

Requête:

SELECT char(0xE4, 0xBD, 0xA0, 0xE5, 0xA5, 0xBD) AS hello;

Résultat:

┌─hello─┐
│ 你好  │
└───────┘

Hex

Renvoie une chaîne contenant la représentation hexadécimale de largument.

Syntaxe

hex(arg)

La fonction utilise des lettres majuscules A-F et ne pas utiliser de préfixes (comme 0x) ou suffixes (comme h).

Pour les arguments entiers, il imprime des chiffres hexadécimaux (“nibbles”) du plus significatif au moins significatif (big endian ou “human readable” ordre). Il commence par loctet non nul le plus significatif (les octets de début zéro sont omis) mais imprime toujours les deux chiffres de chaque octet même si le chiffre de début est nul.

Exemple:

Exemple

Requête:

SELECT hex(1);

Résultat:

01

Les valeurs de type Date et DateTime sont formatés comme des entiers correspondants (le nombre de jours depuis Epoch pour Date et la valeur de Lhorodatage Unix pour DateTime).

Pour String et FixedString, tous les octets sont simplement codés en deux nombres hexadécimaux. Zéro octets ne sont pas omis.

Les valeurs des types virgule flottante et décimale sont codées comme leur représentation en mémoire. Comme nous soutenons larchitecture little endian, ils sont codés dans little endian. Zéro octets de début / fin ne sont pas omis.

Paramètre

Valeur renvoyée

  • Une chaîne avec la représentation hexadécimale de largument.

Type: String.

Exemple

Requête:

SELECT hex(toFloat32(number)) as hex_presentation FROM numbers(15, 2);

Résultat:

┌─hex_presentation─┐
│ 00007041         │
│ 00008041         │
└──────────────────┘

Requête:

SELECT hex(toFloat64(number)) as hex_presentation FROM numbers(15, 2);

Résultat:

┌─hex_presentation─┐
│ 0000000000002E40 │
│ 0000000000003040 │
└──────────────────┘

unhex (str)

Accepte une chaîne contenant un nombre quelconque de chiffres hexadécimaux, et renvoie une chaîne contenant le correspondant octets. Prend en charge les lettres majuscules et minuscules A-F. Le nombre de chiffres hexadécimaux ne doit pas être pair. Sil est impair, le dernier chiffre est interprété comme la moitié la moins significative de loctet 00-0F. Si la chaîne dargument contient autre chose que des chiffres hexadécimaux, un résultat défini par limplémentation est renvoyé (une exception nest pas levée). Si vous voulez convertir le résultat en un nombre, vous pouvez utiliser le reverse et reinterpretAsType fonction.

UUIDStringToNum (str)

Accepte une chaîne contenant 36 caractères dans le format 123e4567-e89b-12d3-a456-426655440000, et le renvoie comme un ensemble doctets dans un FixedString (16).

UUIDNumToString (str)

Accepte une valeur FixedString (16). Renvoie une chaîne contenant 36 caractères au format texte.

bitmaskToList(num)

Accepte un entier. Renvoie une chaîne contenant la liste des puissances de deux qui totalisent le nombre source lorsquil est additionné. Ils sont séparés par des virgules sans espaces au format texte, dans lordre croissant.

bitmaskToArray(num)

Accepte un entier. Renvoie un tableau de nombres UInt64 contenant la liste des puissances de deux qui totalisent le nombre source lorsquil est additionné. Les numéros dans le tableau sont dans lordre croissant.

Article Original