2017-04-06 14 views
0

私のSQL Serverは、大文字と小文字が区別されます:下記のようLatin1_General_CI_ASは正しい出力を生成していない - SQL Server 2008の

私は2台を持っています。

DECLARE @TABLEA TABLE 
(
CUSTNAME VARCHAR (100) 
) 

INSERT @TABLEA 

SELECT 'ONE STOP MOTORIST CENTRE' 


DECLARE @TABLEB TABLE 
(
CUSTNAME VARCHAR (100) 
) 

INSERT @TABLEB 

SELECT 'ONE STOP MOTORIST CENTRE & BODYSHOP' UNION ALL 
SELECT 'One Stop Motorist Centre (Cambridge' UNION ALL 
SELECT 'One Stop Motorist Centre (Cambridge' UNION ALL 
SELECT 'One Stop Motorist Centre & Bodyshop' 

しかし、私は以下のクエリを実行しているときには得られません、それは結果を与えていません。

SELECT * FROM @TABLEA A INNER JOIN @TABLEB B ON '%'+ UPPER(A.[CUSTNAME])+'%' like '%'+ UPPER(B.[CUSTNAME])+'%' 

結果を得るためにtweekが何をしなければならないか誰にでも提案できます。

答えて

0

の側がlikeのパターンになります。あなたの例:あなたはどちらの方向に含めることが必要な場合

SELECT * 
FROM @TABLEA A INNER JOIN 
    @TABLEB B 
    ON UPPER(B.[CUSTNAME]) LIKE '%'+ UPPER(A.[CUSTNAME])+'%'; 

は、2つの条件を使用します。

SELECT * 
FROM @TABLEA A INNER JOIN 
    @TABLEB B 
    ON UPPER(B.[CUSTNAME]) LIKE '%'+ UPPER(A.[CUSTNAME])+'%' OR 
     UPPER(A.[CUSTNAME]) LIKE '%'+ UPPER(B.[CUSTNAME])+'%'; 

私も、デフォルトでは、SQL Serverは、大文字と小文字を区別しないことに注意すべきです。ほとんどの場合、値を大文字にする必要はありません。

関連する問題