我编写了一个存储过程,对某个列的值进行哈希处理。我需要在 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。
多谢你们