JSu*_*uar 4 sql sql-server-2005 case-sensitive sql-server-2008
有一段时间我认为,为了WHERE
正确评估标准,我需要考虑区分大小写.我会用UPPER()
,LOWER()
当情况无关紧要.但是,我发现以下查询产生相同的结果.
SELECT * FROM ATable WHERE UPPER(part) = 'SOMEPARTNAME'
SELECT * FROM ATable WHERE part = 'SOMEPARTNAME'
SELECT * FROM ATable WHERE part = 'somepartname'
Run Code Online (Sandbox Code Playgroud)
SQL大小写敏感字符串比较说明使用区分大小写的排序规则.这是强制区分大小写的唯一方法吗?此外,如果你有一个区分大小写排序时,将UPPER()
和LOWER()
有必要吗?
感谢帮助.
不区分大小写的排序规则的常见的SQL Server默认意味着UPPER()
和LOWER()
比较字符串时是不需要的.
实际上是一种表达方式
SELECT * FROM Table WHERE UPPER(part) = 'SOMEPARTNAME'
Run Code Online (Sandbox Code Playgroud)
由于应用于part
比较左侧列的功能,因此也不会使用可用索引.