繁体   English   中英

Jet/ACE SQL、iif 语句、2 个假值同一列

[英]Jet/ACE SQL, iif statement, 2 false values same column

我在 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 为空怎么办,我想把 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

使用嵌套的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

尝试这个

iif([Stackoverflow] is not null, iif(Nz(master.[Canada],'0') = '0' or master.[Canada] = ' ',master.[USA], master.[Canada]) , "n/a") as Stackoverflow1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM