ctrl +c失效情况

来源:互联网 发布:淘宝亲宝贝入驻条件 编辑:程序博客网 时间:2024/05/16 11:29

今天用户让我帮忙查询一个值,我查询了半天无法查询出来,脚本如下

--查出1行数据select * from TB where sonumber =154532157 --空白无数据select * from TB where sonumber =154532157 and TrackingNumber = N'028114715084630'--查出1行数据select * from TB where sonumber =154532157 and TrackingNumber like N'028114715084630%'--空白,注意此处TrackingNumber是我从前面结果集中ctrl+c方式拷贝出来得 select * from TB where sonumber =154532157 and TrackingNumber = N'028114715084630                         '  --空白 select * from TB  where sonumber =154532157 and TrackingNumber =cast( N'028114715084630                         ' as nchar(40))到现在基本可以确定TrackingNumber存在无法拷贝的字符,于是我写了一个脚本输出它 declare @tb table (id int identity(1,1),col1 nchar(1))declare @i int =0declare @tmp nchar(40)select top 1 @tmp=TrackingNumber from TB where sonumber =154532157 while (@i<=40)begin     insert into @tb    select SUBSTRING(@tmp,@i,1)    print @iset @i=@i+1endselect id, UNICODE (col1), col1, from @tb--------------------------48    050    256    849    149    152    455    749    153    548    056    852    454    651    348    09     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32     32---------------------------------这下我们就知道是存在一个不可见得尾巴nchar(9)了如此--成功查询出数据 select * from TB  where sonumber =154532157 and TrackingNumber =cast( N'028114715084630'+nchar(9) as nchar(40))

以下为简单得错误重现


declare @tb table (col1 char(10))insert into @tbselect N'A'+NCHAR(9)select * from @tbselect * from @tbwhere col1=N'A'select * from @tbwhere col1=CAST(N'A' AS NCHAR(10))select * from @tbwhere col1=N'A         ' select * from @tbwhere col1=N'A'+NCHAR(9) 



问题解决,这个经历告诉我们ctrl+c并没有我们想象中可靠

这个问题是在英文环境中出现,后续我会再中文环境中继续测试,看是否存在同样问题