【发布时间】:2017-10-06 22:03:10
【问题描述】:
我正在尝试编写一条 SQL 语句来显示来自两个不同表(没有公共列)的数据,但唯一的问题是我尝试连接两个表的列的长度不同。一个主要是 3 个字符的长度,另一个是 2 个字符的长度。因此,在两列具有相同长度的值的情况下,它可以在没有 NULL 的情况下输出(例如英国和英国),但在 3:2 的情况下(例如美国和美国)它不会。我正在使用 SQL 开发人员。到目前为止,这是我的想法。
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 会使两行都为空。