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;