如果我想计算一列并在多于一列中使用结果,如何在不进行两次计算的情况下执行此操作?
例子:
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
如何避免在不使用多个选择的情况下写两次?
这个问题必须在这个网站上:)
禁止在视图中使用 ORDER BY,据我了解,因为在使用此视图时可能会出现多个 order by。
我知道有一些方法可以绕过这个限制,例如TOP 99.999999 PERCENT
,但我想知道最佳实践是什么,而不是如何破解它。
所以,如果我想在我的数据库中创建视图供个人使用,这意味着我想连接到数据库并只查看固定和排序的数据,如果我无法订购视图,我该怎么办?
目前在我的 SQL Server DB 中,我有关于TOP
hack 的视图,并且我经常使用它们,但感觉不对。
假设我有一个 表employees
,如下所示:
Name Sex Role
Bob M Developer
Joe M QA
现在,我在此表中遇到重复行的问题。我会在某个时候修复它,但这不是问题。我目前需要的是查询这样一个表的东西:
Name Sex Role
Bob M Developer
Bob M Janitor
Joe M QA
Joe M CEO
并将输出以下行:
Name Role
Bob Developer, Janitor
Joe QA, CEO
如果“角色”将被拆分为单独的列或者是具有多个值的单列,这对我来说并不重要。
如果重要,请使用 SQL Server 2008。