【发布时间】:2016-01-17 18:32:07
【问题描述】:
这是我的场景。
SQL Server 2014 标准版,我有一个带有排序规则 SQL_Latin1_General_CP437_BIN2 的数据库,它区分大小写。
我想执行一个LIKE 查询,它应该返回输出而不考虑大小写。
例如:如果我执行Like 查询以获取用户名为“John”的记录,它还应该返回行,而不管区分大小写的“JOHN”、“John”、“john”、“joHN”。
我尝试使用Lcase、Ucase,但出现错误
消息 195,第 15 级,状态 10,第 4 行
'LCASE' 不是可识别的内置函数名称。
这是我的示例查询
SELECT TOP 300 *
FROM
(SELECT
userNo, userName, Place, Birthdate
FROM usertable
WHERE personid = 2
AND (Name LIKE LCASE('%john%'))
UNION
SELECT
userNo, userName, Place, Birthdate,
FROM usertable2
WHERE personid = 2
AND (Name LIKE LCASE( '%john%') OR Place LIKE LCASE('%NY%')) ) a
ORDER BY
userNo
各位帮我提出宝贵的建议,我对使用基于排序规则的数据库有点困惑。
【问题讨论】:
-
SQL Server 将字符值更改为大写或小写的函数实际上称为“UPPER”和“LOWER”。 (List of string functions.) 您可能在文档中查找错误的 RDBMS...
-
@Matt Gibson 感谢您指出我,我应该使用 UPPER / LOWER。
标签: sql-server sql-server-2014 sql-like collation case-insensitive