比较来自两个不同数据库的两个值不能正常工作

时间:2019-06-25 16:28:28

标签: sql sql-server tsql sql-server-2008 comparison

我有两个数据库,它们分别是从家庭办公室复制到位置以及从位置复制到家庭办公室。 (在内部构建过程中)

我受命比较HO和Loc的数据。我有一些varchar字段,当查看查询中的数据时,它们似乎匹配。但是当我进行比较HO.Desc = Loc.Desc时,我得到了false。我发现一个或另一个值中有返回值,有时还存在隐藏的空格。我已经完成了Rtrim(ltrim(loc.desc)= rtrim(ltrim(ho.desc))的结果,仍然是相同的结果。有人可以给我一些如何进行比较的建议吗?

我尝试过ltrim(rtrim(value))

我希望能够将两个值标记为相同。

1 个答案:

答案 0 :(得分:0)

我有一个方便的脚本,用于识别不可见的字符;它会为您提供字符串中的每个字符,但每个字符单独排成一行。

DECLARE @nstring NVARCHAR(1000)

select top 1 @nstring = [Desc]
FROM myTable
WHERE [Desc] LIKE '%Criteria%'

print @nstring

DECLARE @position INT
 SET @position = 1

DECLARE @CharList TABLE (
 Position INT,
 UnicodeChar NVARCHAR(1),
 UnicodeValue INT
 )

WHILE @position <= DATALENGTH(@nstring)
 BEGIN
 INSERT @CharList
 SELECT @position as Position
 ,CONVERT(nchar(1),SUBSTRING(@nstring, @position, 1)) as UnicodeChar
 ,UNICODE(SUBSTRING(@nstring, @position, 1)) as UnicodeValue
 SET @position = @position + 1
 END

SELECT * FROM @CharList