我在excel的sql查询中有以下iif
语句。
iif(master.[Canada] = '0' or master.[Canada] = ' ' or master.[Canada] IS NULL,master.[USA], master.[Canada]) as Stackoverflow
但是我想添加类似iff([Stackoverflow] is not null, [Stackoverflow], "n/a") as Stackoverflow
的名称,但不能使用重复的别名'。
有人知道怎么做两个错误条件吗?我需要在Stackoverflow列中显示为N / a。
逻辑是这样的
+--------+--------+---------------+
| Canada | USA | Stackoverflow |
+--------+--------+---------------+
| 12345 | 35262 | 12345 |
| 15678 | 52367 | 15678 |
| | 97536 | 97536 |
| 17893 | 35252 | 17893 |
| 0 | 120321 | 120321 |
+--------+--------+---------------+
但是,如果stackoverflow为null,我想把n / a放在那儿
尝试类似的事情:
iff(master.[Canada] <> ' ', iif(master.[Canada] = '0' or master.[Canada] = ' ' or master.[Canada] IS NULL,master.[USA], master.[Canada]), "n/a") as best_id
但是无法使其正常工作。 undefined funcation iif
答案 0 :(得分:1)
在使用嵌套IIF()
时,必须将封闭括号中的数字等同于开放括号中的数字。以下为每个IIF()
的表达式,真相部分,假部分缩进以强调:
IIF(master.[Canada] <> '0' AND TRIM(master.[Canada]) <> '' AND master.[Canada] IS NOT NULL,
master.[Canada],
IIF(master.[USA] <> '0' AND TRIM(master.[USA]) <> '' AND master.[USA] IS NOT NULL,
master.[USA],
'n/a'
)
) as Stackoverflow
答案 1 :(得分:0)
尝试一下
iif([Stackoverflow] is not null, iif(Nz(master.[Canada],'0') = '0' or master.[Canada] = ' ',master.[USA], master.[Canada]) , "n/a") as Stackoverflow1