1

鉴于:

  • 具有“ID”和“描述”列的表 tA
  • “描述”是一个字符串列。
  • 表格内容如下:

    身份证|| 说明
    1 || "字符串1"
    2 || "字符串2"
    3 || “字符串 3”

如果我执行以下 SQL 查询:
“SELECT ID FROM tA WHERE Description = 'String2'”它返回 2(如预期的那样)

但:

如果我执行以下 SQL 查询:
“SELECT ID FROM tA WHERE Description = 'String2'”(尾随空格)它也返回 2!(因为它是一个精确的比较,它应该返回 NONE)

如果我执行以下 SQL 查询:
“SELECT ID FROM tA WHERE Description = 'String2'”(以空格开头)它返回 NONE(如预期的那样)

你知道这种行为差异的原因是什么吗?

提前致谢。

4

1 回答 1

1

您需要在列名周围使用“%EXACT”。这应该不返回任何记录:“SELECT ID FROM tA WHERE %EXACT(Description) = 'String2'”

于 2015-08-14T23:27:24.993 回答