我正在尝试编写一个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 :(得分: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)