我正在查询JOIN到表,A和B. A包含以下字段: TAP - 短文本(AAAA,BBBB等) 运算符 - 短文本 区域 - 短文本(区域01,区域02 ..) B包含以下一个: TAP - 短文 MCC - 号码(20210,20032等)
我的查询是:
SELECT A.TAP, A.Operator, SWITCH(B.MCC='10020', 'Own Network', B.MCC, A.Zone) FROM A LEFT JOIN B ON A.TAP=B.TAP
查询结果显示所有Zone值的#Error值。我认为这是由于MCC是数字格式,因为,当我将MCC更改为短文本(虽然没有文本,只有数字)时,查询会转储正确的区域..但我无法更改,因为我必须将数字格式的MCC用于其他查询。
TAP |运营商|区域| MCC AAAA | ATT | 01区| 120001 BBBB |两个|自己的网络| 10020
有什么建议吗?非常感谢
答案 0 :(得分:0)
我没有真正得到SWITCH
声明。第三个参数(B.MCC
)应该计算为布尔值,并且它不会。
使用IIF(Nz(B.MCC)=10020, 'Own Network', A.Zone)
。我相信你打算做的事。
修复了其他问题:
'10020'
一个字符串。删除了撇号以使10020
成为数字Null
)值。使用Nz
将这些值转换为0
答案 1 :(得分:0)
根据Erik的建议,问题解决了将撇号删除到数字并添加Nz以便将空值转换为零。