使用不同长度的值显示两个不同表中的数据

时间:2017-10-06 22:03:11

标签: sql oracle-sqldeveloper

我正在尝试编写一个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

1 个答案:

答案 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)