回答

收藏

将一列值用于另一列(SQL Server)?

技术问答 技术问答 222 人阅读 | 0 人回复 | 2023-09-14

可以说我在桌子上有很多选择。列的一个值是使用复数logc及其称为 ColumnA    计算。现在,对于另一列,我需要 ColumnA中
4 b3 Q# \4 Q0 z$ n2 `( O将其他静态值添加到值中。. X. h3 g: f' h# ^8 ]* W
示例SQL:9 b3 A# `& @5 R6 e- ^
select table.id,table.number,complex stuff [ColumnA],[ColumnA]   10 .. from table ...在 [ColumnA]   10    什么是即时搜索。复杂的事情是一个巨大的案例/块。
1 t2 D% s5 `, u5 i9 U6 C1 Q# I( B有想法吗?
7 h7 L$ \% I, J: I0 N# z                                                                7 l1 D8 K( l. x, {
    解决方案:                                                               
& [9 {2 `3 C/ V( l                                                                若要引用此SELECT子句中计算的值需要将现有查询移到子句中SELECT中:8 ]) {' s2 T$ Z
SELECT    /* Other columns */,   ColumnA,   ColumnA   10 as ColumnBFROM(select table.id,table.number,complex stuff [ColumnA].. from table ...) tt即使你不打算使用它,你也必须在它中引入别名(在上面,右括号后)。& w  ^2 L8 [8 t: n1 K+ A) h6 g
(等效地-假设你用的是SQL Server 2005或更高版本-您可以将现有查询转移到现有查询CTE中):- X, {- x" T  Y7 r# Q# t, U
;WITH PartialResults as (     select table.id,table.number,complex stuff [ColumnA].. from table ...)SELECT /* other columns */,ColumnA,ColumnA 10 as ColumnB from PartialResults若您已完成多级计算,则CTE它看起来更干净,也就是说,如果你现在依赖它,ColumnB的计算来包含在查询中,那么CTE看上去会更干净。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则