查询Access数据库的SQL字符串
Posted
技术标签:
【中文标题】查询Access数据库的SQL字符串【英文标题】:SQL String to query Access Database 【发布时间】:2013-03-19 01:44:59 【问题描述】:我在访问数据库上的 oledb 查询的命令行上遇到了一点问题。 我已经尝试了许多不同的语法,无论是在访问中还是在我的代码中。与数据库的连接很好,当我尝试填充 da 或在 access 中将其作为查询运行时出现错误。
SELECT * FROM MyTable WHERE MyColumn = 'This Text String';
当我在访问权限中运行它时,我得到一个数据类型不匹配。双引号产生相同的结果。我认为这是因为空格我是否尝试将文本字符串包装在方括号中:
SELECT * FROM MyTable WHERE MyColumn = [This Text String];
在 Access 中,这会提示“输入参数值”,将参数列为“此文本字符串”。
我也尝试过使用 Like 运算符:
SELECT * FROM MyTable WHERE MyColumn LIKE 'This Text String';
无论是单引号还是双引号,这都不会产生错误,但也不会产生任何结果。我试过 CONTAINS,它给了我一个语法错误。
在这一点上,我不知道还能尝试什么。我想要完成的是:
返回“MyTable”中“MyColumn”中的文本等于“This Text String”的所有行
有人可以帮助我吗?我觉得我忽略了一些东西,可能很明显。
编辑:啊……我不确定这是否是问题所在,但也许它会有所帮助。
我刚刚意识到我试图过滤的列 (MyColumn) 不仅仅是访问中的纯文本,它实际上是在另一个表中查找列。
也许这就是问题所在,因为数据类型实际上不是文本,而是数字(因为它是一个列表)。好的...我该如何克服呢?
【问题讨论】:
什么是列类型?什么错误? 哇...快速回复!这就是我刚刚意识到并编辑了这篇文章。包含“此文本字符串”数据类型的列不是文本,而是数字,因为它会查找另一个表中另一列的可用选项。有没有办法可以引用它,或者我需要知道包含表中该项目的编号是多少? 【参考方案1】:你需要加入查找表
SELECT * FROM MyTable INNER JOIN Lookup l on MyColumn = l.key and l.value = 'This Text String';
【讨论】:
以上是关于查询Access数据库的SQL字符串的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Access SQL 查询中的字符串连接问题