[英]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.