2017-10-06 81 views
1

我試圖編寫一個SQL語句來顯示來自兩個不同表的數據(沒有公共列),但唯一的問題是我嘗試加入的列兩個表格的長度不同。一個長度大多爲3個字符,另一個長度爲2個字符。所以在兩個列的值都是相同長度的情況下,它可以不用NULL輸出(例如英國和英國),但在3:2(例如美國和美國)的情況下,它不會。我正在使用SQL Developer。這是我迄今爲止所瞭解的。從客戶從兩個不同的表中顯示不同長度值的數據

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中複製/粘貼它,所以我只是從兩個表中輸入了一行以及列名。 – 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) 
相關問題