[英]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.