IntersystemsCachéSQL。尾随空间与主要空间的不同行为

时间:2015-07-30 11:29:49

标签: sql intersystems-cache trailing intersystems objectscript

假设:

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

    ID ||描述
    1 || “String1中”
    2 || “String2的”
    3 || “String3”

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

但是:

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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