如果有任何合理的理由忽略 varchar 比较中的尾随空格,为什么这也不适用于制表符?
在 SQL Server 上我得到
SELECT
case when '' = ' ' then 'true' else 'false' end,
case when '' = CHAR(9) then 'true' else 'false' end
产量
---- -----
true false
这是 ANSI 规范的问题还是 SQL Server 实现的问题?
编辑:
我无权访问规范的文本。我只看到这个答案中提到了它。我不知道它是否只针对空格,或者它是否在某种模糊的意义上指代空格。
上面在 MySQL 5.5 上的相同代码给出了相同的结果
Tab 不是“空格”,它是一个字符。
这同样适用于硬/不间断空间(“正常”排序规则中的 char(160))
ANSI-92 标准在 8.2 中规定。项目 3.a
CS是“整理顺序”。我假设没有排序规则使用制表符或不间断空格作为填充字符。所以空间是...
请注意,LIKE 是第 8.5 节(我之所以提到这一点是因为您之前的问题)