我有具有以下各列和记录的表。我需要比较两个列的值(ColumnA和ColumnB),如果ColumnB> ColumnA然后从“ N”更新为“ Y”
CREATE TABLE Test(ColumnA int,ColumnB int,Result Varchar(2))
INSERT INTO Test values(1,3,'N')
INSERT INTO Test values(2,1,'N')
INSERT INTO Test values(1,5,'N')
INSERT INTO Test values(8,7,'N')
我需要更新第一和第三行的结果列='Y',因为columnB> ColumnA
结果
ColumnA ColumnB Result
1 3 Y
2 1 N
1 5 Y
8 7 N
这可以通过简单的CASE表达式完成:
update test
set result = case
when columna > columnb then 'Y'
else 'N'
end
;
在线示例:https://rextester.com/ZHIUZD82060
我建议使用boolean
列而不是varchar
来存储“是/否”标志。
update test
set result =
case
when columnb > columna then 'Y'
else 'N'
end;
希望这会有所帮助。