Reaces Asked: 2015-05-12 23:44:11 +0800 CST2015-05-12 23:44:11 +0800 CST 2015-05-12 23:44:11 +0800 CST SQL SSIS语法问题 772 你怎么称呼下面的表达? (TableName == NULL) ? "0" : TableName 我知道它的作用,但想查找整个语法定义,但是由于表达式中没有真正的描述符,我似乎无法找出它的名称。 ssis syntax 3 个回答 Voted Best Answer Mark Sinkinson 2015-05-13T00:30:00+08:002015-05-13T00:30:00+08:00 这就是编程中所谓的Ternary Operator。它在 C/C++、JavaScript 和 PHP(以及其他语言)中很常见。 正如 tombom 所说,这个想法是它是一个速记if语句: <condition> ? <true-case-code> : <false-case-code>; IIFSQL Server 2012 及更高版本以语句的形式拥有自己的三元运算符。 IIF(@type = 2, 1, 0) tombom 2015-05-13T00:13:32+08:002015-05-13T00:13:32+08:00 这是简称 <if> ? <then> : <else> 至少在编程方面,比如 C++ 等等。 armitage 2015-05-13T00:55:27+08:002015-05-13T00:55:27+08:00 这种类型的表达式称为三元运算符。它的标准形式是 condition ? value_if_true : value_if_false 使用你的例子 (TableName == NULL) ? "0": TableName 如果 TableName == NULL 则返回“0” 如果 TableName !==Null 则返回 TableName 您可以将三元表达式重写为 if(TableName==NULL) then "0" else TableName 但这比原来的三元表达式更冗长。
这就是编程中所谓的Ternary Operator。它在 C/C++、JavaScript 和 PHP(以及其他语言)中很常见。
正如 tombom 所说,这个想法是它是一个速记
if
语句:IIF
SQL Server 2012 及更高版本以语句的形式拥有自己的三元运算符。这是简称
至少在编程方面,比如 C++ 等等。
这种类型的表达式称为三元运算符。它的标准形式是
使用你的例子
如果 TableName == NULL 则返回“0”
如果 TableName !==Null 则返回 TableName
您可以将三元表达式重写为
但这比原来的三元表达式更冗长。