【问题标题】:SQL String to query Access Database查询Access数据库的SQL字符串
【发布时间】: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) 不仅仅是访问中的纯文本,它实际上是在另一个表中查找列。

也许这就是问题所在,因为数据类型实际上不是文本,而是数字(因为它是一个列表)。好的...我该如何克服呢?

【问题讨论】:

  • 什么是列类型?什么错误?
  • 哇...快速回复!这就是我刚刚意识到并编辑了这篇文章。包含“此文本字符串”数据类型的列不是文本,而是数字,因为它会查找另一个表中另一列的可用选项。有没有办法可以引用它,或者我需要知道包含表中该项目的编号是多少?

标签: sql vb.net ms-access oledb


【解决方案1】:

你需要加入查找表

SELECT * FROM MyTable INNER JOIN Lookup l on MyColumn = l.key and l.value =  'This Text String';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多