这个问题必须在这个网站上:)
禁止在视图中使用 ORDER BY,正如我所理解的,因为在使用此视图时可能存在多个 order by。
例如TOP 99.999999 PERCENT,我知道有一些方法可以绕过此限制,但我想知道最佳实践是什么,而不是如何破解它。
所以,如果我想在我的数据库中创建供个人使用的视图,这意味着我想连接到数据库并只看到固定和排序的数据,如果我不能订购视图,我该怎么做?
目前在我的 SQL Server 数据库中,我对TOPhack有意见,我经常使用它们,但感觉不对。
如果我想计算一列并在多于 1 列中使用结果,如何在不进行两次计算的情况下执行此操作?
例子:
SELECT LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com' as EMail
,hashbytes('SHA1', LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com') as HashedEmail
FROM sometable
Run Code Online (Sandbox Code Playgroud)
如何避免在不使用多个选择的情况下写两次?
假设我有一个表employees,如下所示:
Name Sex Role
Bob M Developer
Joe M QA
Run Code Online (Sandbox Code Playgroud)
现在,我在这个表中遇到了重复行的问题。我会在某个时候修复它,但这不是问题。我目前需要的是查询这样一个表的东西:
Name Sex Role
Bob M Developer
Bob M Janitor
Joe M QA
Joe M CEO
Run Code Online (Sandbox Code Playgroud)
并将输出以下行:
Name Role
Bob Developer, Janitor
Joe QA, CEO
Run Code Online (Sandbox Code Playgroud)
对我来说,“角色”将被拆分为单独的列还是具有多个值的单个列,这对我来说并不重要。
如果重要,请使用 SQL Server 2008。