T-Sql中是否有三元运算符?

Ant*_*ony 106 t-sql sql-server

有哪些替代方法可以实现以下查询:

select *  
from table  
where isExternal = @type = 2 ? 1 : 0
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 150

在SQL Server 2012中,您可以使用以下IIF函数:

SELECT *
FROM table
WHERE isExternal = IIF(@type = 2, 1, 0)
Run Code Online (Sandbox Code Playgroud)

另请注意:在T-SQL中,赋值(和比较)运算符只是=(而不是==- 那是C#)


Guf*_*ffa 115

用途case:

select *
from table
where isExternal = case @type when 2 then 1 else 0 end
Run Code Online (Sandbox Code Playgroud)