【发布时间】:2013-04-19 01:15:38
【问题描述】:
实现以下查询的替代方法是什么:
select *
from table
where isExternal = @type = 2 ? 1 : 0
【问题讨论】:
-
当然,您在标题中提出的问题的答案是 - 当然。
BETWEEN运算符被定义为采用三个参数。您正在寻找的是一个 conditional 运算符 - happens 是唯一一个定义为采用大多数语言定义的三个参数的运算符。 -
@JFA - 不,a 三元运算符是采用三个操作数的任何运算符。在大多数语言中,if 它们有任何三元运算符,通常它们只有一个,即(通常)称为条件运算符。用错误的名字来称呼事物(或者当你指的是一个特定的名字时使用一个通用的名字)只会导致更多的混乱。如需进一步指导,请查阅ternary-operator 标签维基。
-
@Damien_The_Unbeliever en.wikipedia.org/wiki/Ternary_operation :见“三元运算符”
-
@TimothyKanski - 考虑到我以前的 cmets 的内容和样式(例如特别强调 a),你认为我没有意识到这一点吗?
-
OP 使用了事物的通用名称,而不是错误或过于笼统的名称。我不同意您的结论,即当它确实是常用术语时,专业人士(为他们建立本网站)会对此感到困惑。
标签: sql-server tsql