Ori*_*ian 23 sql t-sql sql-server
我有两个列在某些条件下连接在一起,但我还想检查两个列,看看两个其他列是否相同,然后返回一个位字段,如果它们是.
有比使用CASE WHEN更简单的解决方案吗?
理想情况下我可以使用:
    SELECT Column1 = Column2 AS MyDesiredResult
      FROM Table1
INNER JOIN Table2 ON Table1.PrimaryKey = Table2.ForeignKey
Ken*_*ite 54
CASE对此有什么问题?为了查看结果,您至少需要一个字节,这就是您使用单个字符获得的结果.
CASE WHEN COLUMN1 = COLUMN2 THEN '1' ELSE '0' END AS MyDesiredResult
应该工作正常,并且为了所有意图和目的完成与使用位字段相同的事情.
小智 8
CASE WHEN是更好的选择
SELECT 
  CASE WHEN COLUMN1 = COLUMN2 
    THEN '1' 
    ELSE '0' 
  END 
  AS MyDesiredResult
FROM Table1
INNER JOIN Table2 ON Table1.PrimaryKey = Table2.ForeignKey
小智 5
IIF的使用?这取决于 SQL Server 的版本。
SELECT
IIF(Column1 = Column2, 1, 0) AS MyDesiredResult
FROM Table;
| 归档时间: | 
 | 
| 查看次数: | 129585 次 | 
| 最近记录: |