Sql 什么';这两个字符串的区别是什么?

Sql 什么';这两个字符串的区别是什么?,sql,sql-server,string,Sql,Sql Server,String,我很困惑,我找不到这两组字符串之间的差异,这两组字符串对我来说看起来完全相同。我检查了字符串之间的空白,但没有运气。在SQL Management Studio中运行以下查询时,其中只有一个返回结果。。。请帮忙,谢谢 --return row SELECT * FROM Vendors WHERE VendorCode = 'SRP 85072B' --does not return row SELECT * FROM Vendors WHERE VendorCode = 'SRP  850

我很困惑,我找不到这两组字符串之间的差异,这两组字符串对我来说看起来完全相同。我检查了字符串之间的空白,但没有运气。在SQL Management Studio中运行以下查询时,其中只有一个返回结果。。。请帮忙,谢谢

--return row
SELECT * FROM Vendors WHERE VendorCode = 'SRP  85072B'

--does not return row
SELECT * FROM Vendors WHERE VendorCode = 'SRP  85072B'

--return rows
SELECT * FROM Vendors WHERE VendorCode IN (
'ATT  60197S',
'GMI  98661A')

--does NOT RETURN rows
SELECT * FROM Vendors WHERE VendorCode IN (
'ATT  60197S',
'GMI  98661A')

可能是字符串或列具有特殊字符CR或CRLF,请尝试在比较中删除这些字符:

SELECT * 
FROM Vendors 
WHERE replace(replace(ltrim(rtrim(VendorCode)), char(13), ''), char(10), '') = replace(replace(ltrim(rtrim('SRP  85072B')), char(13), ''), char(10), '')
这段代码使用a分隔两个字符串,将每个字符转换为其ascii值,并返回差异

declare
  @string1      nvarchar(200)='zdq%E^&$DGE%^#((',
  @string2      nvarchar(200)='zdq%E^&$DGx%^#((';

select ascii(SUBSTRING(@string1, t.n, 1)), t.n from dbo.fnTally(1, len(@string1)) t
except
select ascii(SUBSTRING(@string2, t.n, 1)), t.n from dbo.fnTally(1, len(@string2)) t;

其中一个字符串有两个连续的规则空格,另一个字符串有一个非中断空格(字符160十进制0xA0十六进制),后跟一个规则空格(字符32十进制0x20十六进制)

正如我在这里所做的那样,您可以从复制和粘贴字符串中看到这一点


如果运行以下sql查询,它们看起来很相似

DECLARE @first nvarchar(max) = 'SELECT * FROM Vendors WHERE VendorCode = ''SRP  85072B''',
        @second nvarchar(max) = 'SELECT * FROM Vendors WHERE VendorCode = ''SRP  85072B'''

IF (@first = @second)
    SELECT 'Similar';

ELSE
    SELECT 'Not Similar';
如果参数来自同一来源,则可以使用以下查询进行检查

DECLARE @param nvarchar(max) = 'SRP  85072B'
SELECT * FROM Vendors WHERE VendorCode like  '%'+ @param+'%'

它们是相同的。或者至少是你发布的内容(希望是粘贴的)。花点时间给我们一个答案。你是在同一个数据库下的同一个窗口中运行它们吗?选项1:不可打印字符选项2:不同code@shawnt00这是正确的,相同的窗口,相同的database@Larny它们看起来相同,但一个返回行,另一个不感谢您的回答,但很抱歉,当我运行它时,它返回零行。。。
DECLARE @param nvarchar(max) = 'SRP  85072B'
SELECT * FROM Vendors WHERE VendorCode like  '%'+ @param+'%'