[英]Comparing two columns in the same table
我有两列,我想比较每一行中的值并创建第三列,它会告诉我真或假(或 0/1),如下例所示。
Col1 Col2 Col3
24 24 true
45 45 true
56 54 false
78 98 false
就个人而言, CASE
表达式可能是执行此操作的最简单和最简单的方法。
SELECT col1,
col2,
CASE
WHEN col1 = col2 THEN 'True'
ELSE 'False'
END AS Is_A_Match
只需使用 case 表达式。
case when col1 = col2 then 'true' else 'false'
或位形式
case when col1 = col2 then 1 else 0
这应该适合你:
select col1, col2, case when col1 = col2 then 'true' else 'false' end as col3
如果要向表中添加列,则可以使用计算列:
alter table t add col3 as (case when col2 = col3 then 1 else 0 end)
如果列可以具有NULL
值并且您希望将它们视为相等,则逻辑应考虑到这一点。
此列然后在引用该表时可用。
如果您只想要查询中的结果,请使用其他几个答案中所述的case
表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.