在sqlserver中检查字符串的时候,切忌使用select输出的表格中数据(这些数据有时会误导你);
如下面脚本:
DECLARE @tmpVar1 VARCHAR(200)='55057400@WARM ORANGE 011 SP09 011'
DECLARE @tmpVar2 VARCHAR(200)='55057400@WARM ORANGE 011 SP09 011'
SELECT @tmpVar1 AS 'var1',@tmpVar2 AS 'var2'
输出结果:
从上面两个单元格中复制出来字符串检查时,如下:
/*
55057400@WARM ORANGE 011 SP09 011
55057400@WARM ORANGE 011 SP09 011
*/
完全一样,看不出来不同呀!
但是将上面脚本改为用print输出后,再看:
DECLARE @tmpVar1 VARCHAR(200)='55057400@WARM ORANGE 011 SP09 011'
DECLARE @tmpVar2 VARCHAR(200)='55057400@WARM ORANGE 011 SP09 011'
SELECT @tmpVar1 AS 'var1',@tmpVar2 AS 'var2'
/*
55057400@WARM ORANGE 011 SP09 011
55057400@WARM ORANGE 011 SP09 011
*/
PRINT @tmpVar1
PRINT @tmpVar2
能够明显看到两个字符串中的不同,上面的是一个tab字符,而下面的字串中是一个空格字符;
结论:
在SQLSERVER中检查字符串时,在看不出来不同的情况下,请使用Print进行输出查看