对另一列(SQL Server)使用列的值?
发布时间:2021-03-30 10:30:32 所属栏目:MsSql 来源:互联网
导读:让我说我在某个桌子上有一个巨大的选择.列的一个值是使用复杂logc计算的,并称为ColumnA.现在,对于另一列,我需要ColumnA的值,并为其添加一些其他静态值. 示例SQL: select table.id, table.number, complex stuff [ColumnA], [ColumnA] + 10 .. from table ...
|
让我说我在某个桌子上有一个巨大的选择.列的一个值是使用复杂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
如果您有多个级别的部分计算完成,CTE往往会更清洁,即,如果您现在有一个依赖于ColumnB的计算来包含在查询中. (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
