【问题标题】:SQL LIKE doesn't find obvious matches [closed]SQL LIKE 找不到明显的匹配项[关闭]
【发布时间】:2014-05-12 19:54:53
【问题描述】:

我正在编写以下 SQL 查询:

SELECT *
FROM OS
WHERE OS.VERSION LIKE '%1%';

在我的表中有 char 1 的行。但是,它返回一个空结果。 我将 LIKE 子句稍微更改为不同的值,但它仍然不起作用。

我能做些什么来解决这个问题?

【问题讨论】:

  • 让我们看看你的数据和架构
  • "SQL" Like 确实有效:P
  • 好吧,就像 LIKE 运算符 确实 工作.. 所以请检查您的期望。 (并让我们有理由相信您的期望 - 即提供数据/模式或 SQL 小提琴。)
  • OS.VERSION的数据类型是什么?

标签: sql ms-access


【解决方案1】:

尝试使用双引号和 * 作为通配符。您使用的是 Oracle 语法而不是 Access 语法。

【讨论】:

  • 简单地说 MS-Access 不支持标准 SQL LIKE 语法会更正确。甚至 SQL Server 也能很好地支持它:technet.microsoft.com/en-us/library/ms179859.aspx
  • @ebyrob 虽然 Access 中的默认设置是使用 *(这与您在 VBA 中执行相同操作的方式一致)您也可以使用 % 如果您将查询设置为符合 ANSI-92 SQL。 JET,Access 下的数据库,早于 SQL-Server,所以他们在这里做自己的事情也就不足为奇了......
【解决方案2】:

LIKE 操作不能用于整数类型的列。我假设 OS.Version 是整数类型?

编辑1: 如果您指的是 MS Access,那么您必须使用星号 (*) 而不是 % 进行 LIKE。

【讨论】:

    猜你喜欢
    • 2017-06-30
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多