T-SQL LIKE&#39;%<text>%&#39;问题

时间:2017-10-26 15:53:22

标签: sql-server-2012

使用SQL Server 2012(11.0.2100.60)

我使用LIKE和通配符%构建了一个匹配varchar列的查询。 我遇到的问题是我正在寻找的文本结束了文本 代码: {CASE WHEN _1628 LIKE&#39;%school%&#39;然后....}

当_1628中的值为&#39;物业税 - 学校&#39;它不匹配!

有没有人见过这个?我轻松地整理了一个解决方法,但这对我没有意义吗?

1 个答案:

答案 0 :(得分:0)

听起来您已启用区分大小写的排序规则,您可以通过运行

来确认
SELECT SERVERPROPERTY('collation')  

如果返回值中包含CS,则表示区分大小写。

您可以将其更改为不区分大小写的:

USE master;  
GO  
ALTER DATABASE YourDatabase  
COLLATE NewCollation;  
GO  

NewCollat​​ion与您之前的相同,但您已将CS更改为CI。

如果您不想更改排序规则,可以将语句的两边转换为高位

CASE WHEN UPPER(_1628) LIKE '%SCHOOL%' THEN ....

但是,由于需要为每一行调用UPPER函数,因此会对性能产生影响,从而导致表扫描