【问题标题】:How to replicate a computed hashed value in a SQL table?如何在 SQL 表中复制计算的哈希值?
【发布时间】:2020-07-10 16:45:40
【问题描述】:

我们在一个表中有一个列是计算的 HASH:

我的问题是,我如何复制该计算值以便加入它?例如,给定这一行:

我正在尝试这个:

select (CONVERT([uniqueidentifier],hashbytes('MD2',concat('ABC-123','en'))));

其中ABC-123 将是Phrase 的值。但这给了我一个非常不同的哈希值:

A549AB46-7111-6833-F5A9-C0102F63E822

我假设是因为它没有使用相同的uniqueidentifier

我需要做什么才能复制原始计算和存储的哈希值?

【问题讨论】:

    标签: sql sql-server azure-sql-database


    【解决方案1】:

    您必须散列相同的数据类型。所以在散列之前将目标短语转换为nvarchar(max),它应该匹配。 EG

    CONVERT([uniqueidentifier],hashbytes('MD2',cast(concat('ABC-123' ,'en') as nvarchar(max))))
    

    【讨论】:

    • 谢谢! (我在某处遇到语法错误)
    • 忽略最后一条评论。复制粘贴故障。
    猜你喜欢
    • 2023-03-14
    • 2023-03-07
    • 1970-01-01
    • 2014-09-16
    • 2011-09-12
    • 1970-01-01
    • 2022-01-04
    • 2018-04-17
    • 2014-04-01
    相关资源
    最近更新 更多