abb*_*bas 5 sql sql-server performance trim
我有一个varchar的列名
我想过滤名称为空字符串的所有结果...
select name
from tblNames
where name <> ''
Run Code Online (Sandbox Code Playgroud)
我想做的是:
select name
from tblNames
where Ltrim(RTrim(name)) <> ''
Run Code Online (Sandbox Code Playgroud)
我想在where子句中对名称应用trim,但我已经阅读了一些文章,提到了where子句中函数的性能问题
我希望在不损害性能的情况下解决这个问题
ype*_*eᵀᴹ 13
SQL-Server中的标准行为是
' ' = ''
Run Code Online (Sandbox Code Playgroud)
是TRUE,因为尾随空格被忽略.从MSDN支持:
SQL Server遵循ANSI/ISO SQL-92规范(第8.2节,一般规则#3)关于如何比较字符串和空格.ANSI标准要求对比较中使用的字符串进行填充,以便在比较它们之前使它们的长度匹配.填充直接影响
WHERE和HAVING子句谓词以及其他Transact-SQL字符串比较的语义.例如,Transact-SQL会考虑字符串,'abc'并且对于大多数比较操作来说'abc '都是等效的.这个规则的唯一例外是
LIKE谓词....
因此,您的情况WHERE name <> ''应该正常,并且不包括任何只有空格的字符串.
| 归档时间: |
|
| 查看次数: |
19956 次 |
| 最近记录: |