Sql 比较同一表中的两列

Sql 比较同一表中的两列,sql,sql-server,Sql,Sql Server,我有两列,我想比较每一行中的值,并创建第三列,它将告诉我true或false(或0/1),如下面的示例所示 Col1 Col2 Col3 24 24 true 45 45 true 56 54 false 78 98 false 只需使用大小写表达式 case when col1 = col2 then 'true' else 'false' 或以比特形式 case when col1 = col2 then

我有两列,我想比较每一行中的值,并创建第三列,它将告诉我true或false(或0/1),如下面的示例所示

Col1    Col2   Col3
24      24     true
45      45     true
56      54     false
78      98     false

只需使用大小写表达式

 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
值,并且您希望将这些值视为相等,那么逻辑应该考虑到这一点

此列在引用该表时可用

如果您只想在查询中得到结果,请使用其他几个答案中描述的
大小写表达式。

就个人而言,表达式可能是最简单的方法

SELECT col1, 
       col2, 
       CASE 
         WHEN col1 = col2 THEN 'True' 
         ELSE 'False' 
       END AS Is_A_Match

你试过什么了吗?请看一下导游。这不是一个代码服务社区。你试过使用“case”表达式吗?你试过什么了吗?我试过选择“TotalBookedFare”,“MyNewFare”,当“TotalBookedFare”为“MyNewFare”时,选择case,然后选择1或0作为MyDesiredResult结束,这是你比较的两个字符串?这等于零。否则,如果是列,则是正确的方法。是,比较两列。我一定是把这个放错地方了。感谢您确认这是正确的语法