让我说我在某个桌子上有一个巨大的选择.列的一个值是使用复杂logc计算的,并称为ColumnA.现在,对于另一列,我需要ColumnA的值,并为其添加一些其他静态值.
示例sql:
select table.id,table.number,complex stuff [ColumnA],[ColumnA] + 10 .. from table ...
[ColumnA] 10是我想要的东西.复杂的东西是一个巨大的案件/块.
想法?
解决方法
如果要引用在SELECT子句中计算的值,则需要将现有查询移动到子SELECT中:
SELECT /* Other columns */,ColumnA,ColumnA + 10 as ColumnB FROM (select table.id,complex stuff [ColumnA].. from table ... ) t
你必须为这个表引入别名(在上面的t中,在关闭括号之后),即使你不会使用它.
(等同 – 假设您使用sql Server 2005或更高版本 – 您可以将现有查询移动到CTE):
;WITH PartialResults as ( select table.id,complex stuff [ColumnA].. from table ... ) SELECT /* other columns */,ColumnA+10 as ColumnB from PartialResults
原文地址:https://www.jb51.cc/mssql/74842.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。