繁体   English   中英

比较同一个表中的两列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM