TSQL:引用带有case语句的列

时间:2016-07-14 08:43:55

标签: sql-server tsql alias

如果列应该是"提取的,那么是否可以从表中引用一列?#34;来自案例陈述?

update t1 
set col1 = value
from table1 t1, (select Col3, Col4 from table1) t2
where t1.(CASE 
             WHEN Col3 > 0 THEN Col1 
             ELSE Col2) = t2.(CASE WHEN Col3 > 0
                                   THEN Col1 
                                   ELSE Col2 
                              END)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以在案例陈述中使用表别名来引用列名,例如

update t1 
set t1.col1 = value
from table1 t1, (select Col3, Col4 from table1) t2
where CASE 
         WHEN t1.Col3 > 0 THEN t1.Col1 
         ELSE t1.Col2 
        END = CASE WHEN t2.Col3 > 0
                THEN t2.Col1 
                ELSE t2.Col2 
            END

首先评估案例陈述,然后进行比较。