0

COLLATION を持つ古いデータベース - SQL_Latin1_General_CP1_CI_AS と、COLLATION を持つ新しいデータベース - Latin1_General_CI_AI (おそらくデフォルトのもの) の 2 つのデータベースがあります。

両方のデータベースに単純な Table1 (ID (int), code(nvarchar(50))) があります。私がやろうとしているのは、両方のテーブルのデータを比較し、不足しているレコードや余分なレコードを見つけることです。

Sample data in old table has code like : 'Code1      '
Sample data in new table has code like : 'Code1  '

私ができる必要があるのは、両方のデータを比較することです(「名前」列から)。古いテーブルからデータをトリミングできません -

例:

SELECT LTRIM(RTRIM([Name])) from [OLDDB].dbo.Table1
returns 'Code1     '       -- NOT as expected (probably due to mis-match in charset

SELECT LTRIM(RTRIM([Name])) from [NEWDB].dbo.Table1
'Code1'                    -- as expected

それが理にかなっていることを願っています。その上、列レベルで COLLATION を変更しても、まだ ltrim / rtrim の作業を行うことができませんでした!

ありがとう。

4

2 に答える 2

0

CHAR(160) が問題の場合、照合を変更する必要はありません。これらの CHAR(160) を適切なスペースに置き換えるだけで、RTRIM が機能します。

SELECT LTRIM(RTRIM(REPLACE([Name], CHAR(160), ' '))) from [OLDDB].dbo.Table1

于 2013-09-14T19:37:14.513 に答える