MS Access VBA, SQL Script: In(), <>, AND 语法



我有一个脚本,我需要显示类型和过滤掉null。

ReturnBooks = "Select * from [Books] where ([Type] IN ('B','K' ,'R' ,'C') AND [Type] <> 'No' AND [BookGenre] IS NOT NULL)) Order By [LName] ASC"

我需要BookGenre不为空,但语法不返回任何内容。最初的代码没有那一行,它确实返回一些结果。

ReturnBooks = "Select * from [Books] where ([Type] IN ('B','K' ,'R' ,'C') AND [Type] <> 'No') Order By [LName] ASC"

返回书的类型。

如何在脚本中适合IS NOT NULL ?

例如,books表将根据类型按姓氏返回作者。我还从脚本中得到一个数据类型不匹配。

您的查询中括号不平衡

并且需要显示数据库中表中的一些示例数据

让我们检查一下where子句:([型]("B"、"K"、"R"、"C")和[型]& lt;>"不") [BookGenre] NOT NULL)

如果你的[Type] in ('B','K','R','C'),那么它永远不会是'No',所以,"And Type <> 'No'"是没有用的。

IS NOT NULL

如果您只需要BookGenre不为null的记录,只需使用:

ReturnBooks = "SELECT * FROM [Books] WHERE [BookGenre] IS NOT NULL ORDER BY [LName] ASC"

如果您需要过滤BookGenre也是空白的记录,请尝试:

ReturnBooks = "SELECT * FROM [Books] WHERE ([BookGenre] IS NOT NULL) AND ([BookGenre] <> '')  ORDER BY [LName] ASC"

最新更新