MS Access SQL - 如果结果"NULL"则查询错误



我试图在MS Access SQL中进行查询,但在字段中的输出表中出现错误。

  • my[ReckeiptYesNo]是表中带有NULL、1、2的数字
  • 我的[财务表情]是一条短信

我的第一次尝试:

iif(ReceiptYesNo IS NOT NULL, 
iif(left(FinancesMemo, 6)="ΙΕΠ //", 3, iif(ReceiptYesNo=1, 1, 2)),
iif(left(FinancesMemo, 6)="ΙΕΠ //", 3, "NULL")
) 
AS receipt_id,

我的第二次尝试:

iif(left(FinancesMemo, 6)="ΙΕΠ //", 3, iif(ReceiptYesNo=1, 1, iif(ReceiptYesNo=2, 2, "NULL"))) as receipt_id,

如果结果不是"0";NULL";它正在发挥作用。

如果我的结果是";如果为"NULL";,我在球场上犯了错误。

如果我更改代码并放入其他类似";11〃;或";23〃;,它正在发挥作用。

我怎样才能让它工作?

***更新***

我好像不能放文字,只能放数字。

***按照下面的答案(6月7日(,我以***的身份解决了我的问题

iif(ReceiptYesNo IS NOT NULL, 
iif(left(FinancesMemo, 6)="ΙΕΠ //", 3, iif(ReceiptYesNo=1, 1, 2)),
iif(left(FinancesMemo, 6)="ΙΕΠ //", 3, NULL)
) AS temp_receipt_id,
iif(temp_receipt_id is null,"NULL",temp_receipt_id) as receipt_id,

在我的测试中,当ReceiptYesNo为Null并且FinancesMemo没有"¦Βπ//"。立即窗口中的以下表达式返回"0";N〃:IIf(Null=1, 1, IIf(Null=2, 2, IIf(Null=3, 3, "N"))),因为Null=任何东西都不可能为true,所以返回False参数。查询不喜欢,因为在同一个输出字段中混合了数字和文本。返回的第一个值定义字段类型。如果";Null";若返回第一个值,那个么数字将自动转换为字符串。

问题编辑中的结论是正确的。要么将1、2、3作为字符串返回,要么使用0或Null代替"0";空";。

iif(left(FinancesMemo, 6)="ΙΕΠ //", "3", iif(ReceiptYesNo=1, "1", iif(ReceiptYesNo=2, "2", "NULL")))

Switch(left(FinancesMemo, 6)="ΙΕΠ //","3", ReceiptYesNo=1,"1", ReceiptYesNo=2,"2", True,"NULL")

相关内容

  • 没有找到相关文章

最新更新