比较postgres中的两个列值
Comparing two column values in postgres
我 table 有以下列和记录。我需要比较两个列值(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')
我需要更新第一行和第三行的结果 Column='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
来存储 "yes/no" 标志。那么更新就变得简单到set result = column_a > columnb
update test
set result =
case
when columnb > columna then 'Y'
else 'N'
end;
希望这会有所帮助。
我 table 有以下列和记录。我需要比较两个列值(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')
我需要更新第一行和第三行的结果 Column='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
来存储 "yes/no" 标志。那么更新就变得简单到set result = column_a > columnb
update test
set result =
case
when columnb > columna then 'Y'
else 'N'
end;
希望这会有所帮助。