【发布时间】:2018-05-08 18:45:08
【问题描述】:
我编写了一个存储过程,它对某个列的值进行哈希处理。我需要在 CASE WHEN 或 IIF 语句中使用此 HASHBYTES 函数,如下所示:
DECLARE @Hash varchar(255) = 'testvalue'
SELECT IIF(1=1, HASHBYTES('SHA1',@Hash), @Hash)
SELECT CASE WHEN 1=1 THEN HASHBYTES('SHA1',@Hash) END AS Hashcolumn
我无法理解为什么我会从上述查询中得到不同的输出?似乎每当我在 CASE WHEN / IIF 语句中添加 ELSE 时,它都会返回一串奇怪的字符(如上例中的ü<þ+OUL'RDOk{\Ìø)。
谁能告诉我为什么会这样?我需要使用 CASE WHEN 或 IIF。
谢谢大家
【问题讨论】:
标签: sql sql-server stored-procedures hashbytes