繁体   English   中英

tsql LIKE 通配符比较发现 = 没有

[英]tsql LIKE wildcard comparison finds what = does not

这个:

select casenumber from case where casenumber = '21-CR-1019'

回报:无

虽然这样:

select casenumber from case where casenumber like '%21-CR-1019%'

回报:
21-CR-1019

表列定义是 varchar(20)。 我不认为这是一个因素。

我检查了数据源,没有找到填充字符串。 值中似乎也没有填充字符串,因为返回的长度与实际字符串长度匹配:

这个:

select casenumber, len(casenumber) as StringLength from case where casenumber like '%21-CR-1019%'

回报:

casenumber  StringLength
2021-CR-1019    12

这是 SQL Server 标准版,10.50.6560.0 (SQL Server 2008R2)。

有谁知道这种行为是否有解释? 我从未,从未见过。

字符和整数的混合是否会以某种方式混淆 tsql 推断数据类型的能力? 这是一个“功能”吗?

早上好 504more!

是的,有时当涉及到几年时,我们喜欢认为 2021 年但不小心只输入了 21.. 所以在你的第一个.. 它正在寻找 21-CR-1019,所以它没有找到它。
在你的第二个中,你有通配符..它找到了一个匹配,因为它找到了20 21-CR-1019

一旦你说它测量长度为 12.. 我知道你的第一次搜索只有 10 个字符。

我很高兴我能帮你解决这个问题:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM