Joh*_*lan -1 sql-server whitespace ansi
前几天这个让我抓狂.您希望以下内容返回什么?
SELECT 'X' AS line
UNION
SELECT 'X ' AS line
Run Code Online (Sandbox Code Playgroud)
注意第二个SELECT中的空格.显然,SQL 2000和2005都返回1个结果.即使它是一个UNION(而不是UNION ALL).
关于这一点,我没有在网上看到任何内容.为什么会这样?我猜这是一个错误.它是否有正当理由?
指定尾随空格在ANSI SQL标准中以特殊方式处理:
http://support.microsoft.com/default.aspx/kb/316626
http://support.microsoft.com/kb/154886/EN-US/
我不确定二进制排序规则是否可以解决这个问题:
IF 'X ' COLLATE Latin1_General_BIN = 'X' COLLATE Latin1_General_BIN
PRINT 'Equal'
Run Code Online (Sandbox Code Playgroud)
这打印"平等"