使用SQL Server 2012(11.0.2100.60)
我使用LIKE和通配符%构建了一个匹配varchar列的查询。 我遇到的问题是我正在寻找的文本结束了文本 代码: {CASE WHEN _1628 LIKE'%school%'然后....}
当_1628中的值为'物业税 - 学校'它不匹配!
有没有人见过这个?我轻松地整理了一个解决方法,但这对我没有意义吗?
答案 0 :(得分:0)
听起来您已启用区分大小写的排序规则,您可以通过运行
来确认SELECT SERVERPROPERTY('collation')
如果返回值中包含CS,则表示区分大小写。
您可以将其更改为不区分大小写的:
USE master;
GO
ALTER DATABASE YourDatabase
COLLATE NewCollation;
GO
NewCollation与您之前的相同,但您已将CS更改为CI。
如果您不想更改排序规则,可以将语句的两边转换为高位
CASE WHEN UPPER(_1628) LIKE '%SCHOOL%' THEN ....
但是,由于需要为每一行调用UPPER函数,因此会对性能产生影响,从而导致表扫描