有条件的? :SSIS

时间:2014-05-16 01:36:13

标签: sql sql-server ssis ssms

(ISNULL([Deal Status]) ? "2" : SUBSTRING([Deal Status],1,1)) == "2"

这是SSIS中条件分割的输出之一。

我不明白这意味着什么。你能帮忙解释一下吗?

我理解:如果Deal Status为null,则返回2,否则检查dealstatus是否为2?

2 个答案:

答案 0 :(得分:3)

使用? and :时,它是一个条件运算符,与使用if / else语句相同:

condition ? true result : false result

因此,要分解您的陈述正在做什么,它首先检查是否DealStatus IS NULL。如果是,则返回“2”。如果不是NULL,则会使用DealStatus返回SUBSTRING字段的第一个字符。最后,它将该结果进行比较,看它是否等于“2”。

整个表达式将返回true / false。例如,如果DealStatusNULL,则始终返回true。


例如,如果以下值存储在DealStatus字段中,则会出现结果。

DealStatus    ResultOfCondition
NULL          true (because DealStatus is NULL, we compare 2 == 2 is true)
123           false (because the first character is 1, 1 == 2 is false)
234           true (because the first character is 2, 2 == 2 is true)

答案 1 :(得分:-1)

例如,如果以下值存储在DealStatus字段中,则会出现结果。

DealStatus =空

(ISNULL([交易状态])?" 2" :SUBSTRING([交易状态],1,1))==" 2" 它将验证第一个条件,DealStatus值为null所以它会显示(真实条件)后?重视那里的一切,在这种情况下" 2"是"?"它将显示2.so 2 = 2

DealStatus = 256

(ISNULL([交易状态])?" 2": SUBSTRING([交易状态],1,1))==" 2"

它将检查第一个条件,但是DealStatus值不为null,因此它将检查它将产生输出的第二个条件是2 .so 2 = 2.

子串Ex: -

选择SUBSTRING(' 258',1,1)o / p: - 2

选择SUBSTRING(' 589',1,1)o / p: - 5