標準 SQL 中的雜湊函式

FARM_FINGERPRINT

FARM_FINGERPRINT(value)

說明

使用開放原始碼 FarmHash 資料庫提供的 Fingerprint64 函式,計算 STRING 或 BYTES 輸入內容的指紋。特定輸入的這個函式之輸出將永不變更。

傳回類型

INT64

範例

WITH example AS (
  SELECT 1 AS x, "foo" AS y, true AS z UNION ALL
  SELECT 2 AS x, "apple" AS y, false AS z UNION ALL
  SELECT 3 AS x, "" AS y, true AS z
)
SELECT
  *,
  FARM_FINGERPRINT(CONCAT(CAST(x AS STRING), y, CAST(z AS STRING)))
    AS row_fingerprint
FROM example;
+---+-------+-------+----------------------+
| x | y     | z     | row_fingerprint      |
+---+-------+-------+----------------------+
| 1 | foo   | true  | -1541654101129638711 |
| 2 | apple | false | 2794438866806483259  |
| 3 |       | true  | -4880158226897771312 |
+---+-------+-------+----------------------+

MD5

MD5(input)

說明

使用 MD5 演算法計算輸入的雜湊。輸入可以是 STRING 或 BYTES。字串版本會將輸入當成位元組的陣列處理。

這個函式會傳回 16 個位元組。

傳回類型

BYTES

範例

SELECT MD5("Hello World") as md5;

+-------------------------------------------------+
| md5                                             |
+-------------------------------------------------+
| \xb1\n\x8d\xb1d\xe0uA\x05\xb7\xa9\x9b\xe7.?\xe5 |
+-------------------------------------------------+

SHA1

SHA1(input)

說明

使用 SHA-1 演算法計算輸入的雜湊。輸入可以是 STRING 或 BYTES。字串版本會將輸入當成位元組的陣列處理。

這個函式會傳回 20 個位元組。

傳回類型

BYTES

範例

SELECT SHA1("Hello World") as sha1;

+-----------------------------------------------------------+
| sha1                                                      |
+-----------------------------------------------------------+
| \nMU\xa8\xd7x\xe5\x02/\xabp\x19w\xc5\xd8@\xbb\xc4\x86\xd0 |
+-----------------------------------------------------------+

SHA256

SHA256(input)

說明

使用 SHA-256 演算法計算輸入的雜湊。輸入可以是 STRING 或 BYTES。字串版本會將輸入當成位元組的陣列處理。

這個函式會傳回 32 個位元組。

傳回類型

BYTES

範例

SELECT SHA256("Hello World") as sha256;

SHA512

SHA512(input)

說明

使用 SHA-512 演算法計算輸入的雜湊。輸入可以是 STRING 或 BYTES。字串版本會將輸入當成位元組的陣列處理。

這個函式會傳回 64 個位元組。

傳回類型

BYTES

範例

SELECT SHA512("Hello World") as sha512;
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁