繁体   English   中英

MS Access VBA,SQL脚本:In(),<>和AND语法

[英]MS Access VBA, SQL Script: In(), <>, AND syntaxes

我有一个脚本,需要显示类型并过滤出空值。

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

我需要BookGenre不为null,但语法不返回任何内容。 最初,代码没有该行,并且确实返回了一些结果。

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

返回书的类型。

如何将IS NOT NULL放入脚本中?

例如,books表将根据类型返回姓氏的作者。 我还从脚本中获得了数据类型不匹配的信息。

您的查询中括号不平衡。

并且您需要从数据库表中显示一些示例数据。

让我们检查一下where子句: ([Type] IN('B','K','R','C')AND [Type] <>'No') AND [BookGenre]不为空))

如果您的[Type]在('B','K','R','C')中,则它永远不会是'No',因此,“ And Type <>'No'”是没有用的。

“ IS NOT NULL”阶段与mysql,sqlserver一起使用时效果很好。

如果仅需要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"

希望这对您有帮助。

暂无
暂无

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

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