我有一个代码
DECLARE @A VARCHAR(10) = 'A'
DECLARE @B VARCHAR(10) = 'A '
IF(@A=@B)
SELECT 'Equal'
ELSE
SELECT 'Not Equal'
这里@A和@B不相等。
为了不忽略最后的额外空格,我试过
IF(REPLACE(@B,' ','.') = REPLACE(@A,' ','.'))
我的问题是:
答案 0 :(得分:3)
@A和@B 相等。它们只是不一样:)当执行字符串比较时,SQL Server会将具有尾随空格的字符串的所有变体视为相等。此外,主动归类可以将其他字符串组合到该等价类中。
如果要以区分尾随空格的方式比较两个字符串,请使用like运算符。例如
select 1
where 'a' like 'a '
见