如何构造" where“子句不区分大小写的SQL查询(MS SQL Server)?
SELECT * FROM myTable WHERE myField = 'sOmeVal'
我想让结果出来而不管这个案子
发布于 2009-08-03 20:17:10
通常,字符串比较是不区分大小写的。如果您的数据库配置为区分大小写,则需要强制使用不区分大小写的排序规则:
SELECT balance FROM people WHERE email = 'billg@microsoft.com'
COLLATE SQL_Latin1_General_CP1_CI_AS
发布于 2010-07-16 09:11:47
我在别处找到了另一种解决方案,即使用
upper(@yourString)
但是这里的每个人都在说,在SQL Server中,这无关紧要,因为它忽略了大小写?我很确定我们的数据库是区分大小写的。
发布于 2012-10-02 15:59:14
不能,只使用LIKE
是行不通的。LIKE
搜索与给定模式完全匹配的值。在这种情况下,LIKE
将只找到文本'someval‘,而不是'sOmeVal’。
一种可行的解决方案是使用LCASE()
函数。LCASE('sOmeVal')
获取文本的小写字符串:“someval”。如果您在比较的两边都使用此函数,它将起作用:
SELECT * FROM myTable WHERE LCASE(myField) LIKE LCASE('sOmeVal')
该语句将比较两个小写字符串,以便您的'sOmeVal‘将匹配所有其他表示法'someval’(例如:'Someval','sOMEVAl‘等)。
https://stackoverflow.com/questions/1224364
复制相似问题