2017-10-06 15 views
1

2つの異なるテーブル(共通の列なし)からデータを表示するSQL文を作成しようとしていますが、唯一の問題は、上の2つのテーブルは異なる長さです。 1つは長さが3文字で、もう1文字は長さが2文字です。したがって、両方の列が同じ長さの値を持つ場合、NULL(英国および英国など)を使用せずに出力できますが、3:2(米国と米国など)のシナリオでは出力されません。私はSQL Developerを使用しています。これまでに私が考え出したことがあります。お客様から異なる長さの値を持つ2つの異なるテーブルのデータを表示

SELECT CUST_NO, CNAME, COUNTRY_ID, COUNTRY_CD, COUNTRY_NAME 
FROM CUSTOMERS 
RIGHT OUTER JOIN COUNTRIES ON CUSTOMERS.COUNTRY_CD = COUNTRIES.COUNTRY_ID 
WHERE COUNTRIES.COUNTRY_ID LIKE '_%_%'; 

サンプルデータ:国から

CUST_NO: 1053 

CNAME: Sportwaren G.m.b.H 3 

STATUS: A 

CUST_TYPE: SPORTS: Sports Chain 

COUNTRY_CD: GER 

BRANCH_CD: FRNK 

サンプルデータ:

COUNTRY_ID: AR 

COUNTRY_NAME: ARGENTINA 

REGION_ID: 2 
+0

あなたはいくつかのサンプルデータを与えることはできますか? –

+0

SQLから直接コピー&ペーストすることができなかったので、両方のテーブルから列名とともに1行だけ入力しました。 – Glaz

+0

大丈夫ですが、COUNTRY_IDはCOUNTRY_CDと等しいはずです。そうでない場合は、データの清掃に関する問題 –

答えて

1
SELECT cust_no 
    , cname 
    , country_id 
    , country_cd 
    , country_name 
    FROM customers 
     RIGHT OUTER JOIN countries ON SUBSTR (customers.country_cd, 1, 2) = SUBSTR (countries.country_id, 1, 2) 
関連する問題