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
Run Code Online (Sandbox Code Playgroud)
Ken*_*ite 54
CASE对此有什么问题?为了查看结果,您至少需要一个字节,这就是您使用单个字符获得的结果.
CASE WHEN COLUMN1 = COLUMN2 THEN '1' ELSE '0' END AS MyDesiredResult
Run Code Online (Sandbox Code Playgroud)
应该工作正常,并且为了所有意图和目的完成与使用位字段相同的事情.
小智 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
Run Code Online (Sandbox Code Playgroud)
小智 5
IIF的使用?这取决于 SQL Server 的版本。
SELECT
IIF(Column1 = Column2, 1, 0) AS MyDesiredResult
FROM Table;
Run Code Online (Sandbox Code Playgroud)