ClickHouse/docs/ja/sql-reference/functions/encoding-functions.md

5.5 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 52 エンコード

エンコード機能

char

渡された引数の数として長さの文字列を返し、各バイトは対応する引数の値を持ちます。 数値型の複数の引数を受け取ります。 引数の値がUInt8データ型の範囲外である場合、丸めとオーバーフローの可能性があるUInt8に変換されます。

構文

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

パラメータ

  • number_1, number_2, ..., number_n — Numerical arguments interpreted as integers. Types: Int, フロート.

戻り値

  • 指定されたバイトの文字列。

タイプ: String.

クエリ:

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

結果:

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

を構築できます文字列の任意のエンコードに対応するバイトまでとなります。 UTF-8の例を次に示します:

クエリ:

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

結果:

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

クエリ:

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

結果:

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

hex

引数の十六進表現を含む文字列を返します。

構文

hex(arg)

関数は大文字を使用しています A-F そして、接頭辞を使用しない(のような 0x)または接尾辞(のような h).

整数引数の場合は、六桁を出力します (“nibbles”)最上位から最下位へ(ビッグエンディアンまたは “human readable” 順序)。 これは、最上位の非ゼロバイト(先頭のゼロバイトは省略されます)で始まりますが、先頭の数字がゼロであっても、常にすべてのバイトの両方の桁を

例:

クエリ:

SELECT hex(1);

結果:

01

型の値 DateDateTime 対応する整数(Dateの場合はエポックからの日数、DateTimeの場合はUnix Timestampの値)としてフォーマットされます。

のために StringFixedString、すべてのバイトは単に二進数として符号化される。 ゼロバイトは省略されません。

浮動小数点型とDecimal型の値は、メモリ内の表現としてエンコードされます。 支援においても少しエンディアン、建築、その符号化されたのでちょっとエンディアンです。※ 先頭/末尾のゼロバイトは省略されません。

パラメータ

戻り値

  • 引数の十六進表現を持つ文字列。

タイプ: String.

クエリ:

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

結果:

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

クエリ:

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

結果:

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

unhex(str)

任意の数の十六進数を含む文字列を受け取り、対応するバイトを含む文字列を返します。 大文字と小文字の両方をサポートしていますa-F進の桁数は偶数である必要はありません。 奇数の場合、最後の桁は00-0Fバイトの最下位半分として解釈されます。 引数文字列に十六進以外の桁数が含まれている場合、実装定義の結果が返されます(例外はスローされません)。 結果を数値に変換する場合は、 reversereinterpretAsType 機能。

UUIDStringToNum(str)

形式で36文字を含む文字列を受け入れます 123e4567-e89b-12d3-a456-426655440000 これをFixedString(16)内のバイトセットとして返す。

UUIDNumToString(str)

FixedString(16)値を受け取ります。 36文字を含む文字列をテキスト形式で返します。

ビットマスクトリスト(num)

整数を受け取ります。 ソース番号を合計する二つの累乗のリストを含む文字列を返します。 これらは、テキスト形式のスペースなしで、昇順でコンマ区切りです。

ビットマスクトアレイ(num)

整数を受け取ります。 合計されたときにソース番号を合計する二つのべき乗のリストを含むUInt64数値の配列を返します。 配列内の数値は昇順です。

元の記事