我试图比较雪花和Server之间的字符串值。我有一个比较UNICODE字符的问题。Server MD5哈希算法产生与雪花不同的结果。
为了比较目的,什么是解决这种差异的最佳方法?
示例代码
SQL Server
/* SQL SERVER
LOWER and CONVERT are used to produce the exact HASH format as Snowflake
*/
SELECT
LOWER(
CONVERT(VARCHAR(1000),
HASHBYTES('MD5', CAST('md5_alg“test”' AS VARCHAR(50)))
, 2)
) AS mismatch;
SELECT
LOWER(
CONVERT(VARCHAR(1000),
HASHBYTES('MD5', CAST('md5_algtest' AS VARCHAR(50)))
, 2)
) AS matches;雪花
/* SNOWFLAKE */
SELECT md5('md5_alg“test”') AS mismatch;
SELECT md5('md5_algtest') AS match;发布于 2022-05-23 15:10:30
对于SQLServer2019,下面的解决方案适用于我。
SELECT
LOWER(
CONVERT(VARCHAR(1000),
HASHBYTES('MD5', CAST('md5_alg“test”' AS VARCHAR(50)))
, 2)
) AS mismatch,
LOWER(
CONVERT(VARCHAR(1000),
HASHBYTES('MD5', CAST('md5_alg“test”' AS VARCHAR(50)) COLLATE Latin1_General_100_CI_AS_SC_UTF8)
, 2)
) AS matchhttps://stackoverflow.com/questions/72292837
复制相似问题