SQL UPDATE根据列交叉引用值选择行

时间:2014-03-12 21:06:30

标签: sql sql-update where multiple-columns

我想根据另一列中的值更新行。

示例表

Col1 Col2 Col3
'A' | ''  | 100
'B' | ''  | 120
'C' | 'A' | 0

UPDATE Table SET Col3 = Col3 - 10 WHERE Col1 = 'A'

但是,如果Col2不是空白,那么我想更新在Col2中具有它的值的行,以便

UPDATE Table SET Col3 = Col3 - 10 WHERE Col1 = 'C' 

会更新Col1 =' A'行

更新

我发现以下查询适用于我

UPDATE Table SET col3 = Col3 - 10
WHERE Col2 = '' and Col1 = 'C'
OR Col1 = (SELECT Col2 FROM Table WHERE Col1 = 'C')

1 个答案:

答案 0 :(得分:0)

其中tbl是表名

update tbl set col3=col3-10
from tbl t
inner join tbl tt
 on t.col1=tt.col2 or t.col2=''
where t.col1 = 'C'