Sql 显示具有不同长度值的两个不同表中的数据

Sql 显示具有不同长度值的两个不同表中的数据,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,我试图编写一条SQL语句来显示来自两个不同表(没有公共列)的数据,但唯一的问题是,我试图连接两个表的列的长度不同。一个长度主要为3个字符,另一个长度为2个字符。因此,在两列具有相同长度的值的情况下,它可以不带NULL(例如UK和UK)输出,但在3:2(例如USA和US)的情况下则不带NULL。我使用的是SQLDeveloper。这是我到目前为止所知道的 SELECT CUST_NO, CNAME, COUNTRY_ID, COUNTRY_CD, COUNTRY_NAME FROM CUSTOME

我试图编写一条SQL语句来显示来自两个不同表(没有公共列)的数据,但唯一的问题是,我试图连接两个表的列的长度不同。一个长度主要为3个字符,另一个长度为2个字符。因此,在两列具有相同长度的值的情况下,它可以不带NULL(例如UK和UK)输出,但在3:2(例如USA和US)的情况下则不带NULL。我使用的是SQLDeveloper。这是我到目前为止所知道的

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

你能给出一些示例数据吗?我不能直接从SQL复制/粘贴它,所以我只从两个表中键入了一行以及列名。好的,很好,在我看来,COUNTRY_ID应该等于COUNTRY_CD。如果不是,则是数据清理问题COUNTRY_ID不等于COUNTRY_CD,但仅在两行具有相同长度的情况下,因此类似于一列中的USA和另一列中的US的内容将在显示时使两行都为空。
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)