如果我想计算一列并在多于一列中使用结果,如何在不进行两次计算的情况下执行此操作?
例子:
SELECT LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com' as EMail
,hashbytes('SHA1', LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com') as HashedEmail
FROM sometable
如何避免在不使用多个选择的情况下写两次?
如果我想计算一列并在多于一列中使用结果,如何在不进行两次计算的情况下执行此操作?
例子:
SELECT LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com' as EMail
,hashbytes('SHA1', LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com') as HashedEmail
FROM sometable
如何避免在不使用多个选择的情况下写两次?
派生表
或 CTE:
但是,在这种情况下,我会考虑使用预先计算哈希的计算列
首先,我认为您想编写 hashbytes 而不是 haststring。hashstring 不是 SQL 函数。
这是我希望你想要的代码。