比较postgres中的两个列值

问题描述 投票:-1回答:2

我有具有以下各列和记录的表。我需要比较两个列的值(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
sql sql-update case postgresql-9.1
2个回答
0
投票

这可以通过简单的CASE表达式完成:

update test
  set result = case 
                 when columna > columnb then 'Y' 
                 else 'N' 
               end
;

在线示例:https://rextester.com/ZHIUZD82060


我建议使用boolean列而不是varchar来存储“是/否”标志。


0
投票
update test
set result = 
    case
        when columnb > columna then 'Y'
        else 'N'
    end;

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.