Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server T-SQL中有三元条件运算符吗?_Sql Server_Tsql - Fatal编程技术网

Sql server T-SQL中有三元条件运算符吗?

Sql server T-SQL中有三元条件运算符吗?,sql-server,tsql,Sql Server,Tsql,实现以下查询的备选方案有哪些: select * from table where isExternal = @type = 2 ? 1 : 0 使用案例: select * from table where isExternal = case @type when 2 then 1 else 0 end 在SQL Server2012中,您可以使用: 另请注意:在T-SQL中,赋值(和比较)操作符只是=(而不是=)当然,你在标题中提出的问题的答案是-当然。运算符被定义为接受三个参数

实现以下查询的备选方案有哪些:

select *  
from table  
where isExternal = @type = 2 ? 1 : 0
使用
案例

select *
from table
where isExternal = case @type when 2 then 1 else 0 end

在SQL Server2012中,您可以使用:


另请注意:在T-SQL中,赋值(和比较)操作符只是
=
(而不是
=

当然,你在标题中提出的问题的答案是-当然。运算符被定义为接受三个参数。您要找的是一个条件运算符,它恰好是唯一一个定义为接受大多数语言定义的三个参数的运算符。@JFA-不,三元运算符是任何接受三个操作数的运算符。在大多数语言中,如果它们有任何三元运算符,它们通常只有一个,即(通常)称为条件运算符。用错误的名字称呼事物(或者当你指的是一个特定的名字时使用一个通用的名字)只会导致更多的混乱。关于进一步的指导,请参考tag wiki。@Damien_the_unsiver:参见“三元运算符”@TimothyKanski-考虑到我之前评论的内容和样式(比如特别强调a),你认为我不知道这一点吗?OP使用了一个事物的通用名称,而不是它的错误或过于笼统的名称。我不同意你的结论,即专业人士(本网站是为他们建立的)会被这一点弄糊涂,而这确实是常用的术语。
SELECT *
FROM table
WHERE isExternal = IIF(@type = 2, 1, 0)