假设我有两个表,其中一个名为A并包含两列:country1(作为ISO代码),country2(作为ISO代码),而另一个名为B并包含两列:code(国家的ISO代码)和名称(国家的全名)。
我想使用全名列出表A中出现的所有国家/地区,而不是ISO代码。
如果我必须得到表A第一栏中出现的每个国家的全名,我会写下以下内容:
SELECT name AS name1
FROM B
INNER JOIN A ON B.code = A.country1
但是,我正在努力找出如何使用全名获取两个列。
答案 0 :(得分:1)
您应该可以在A的code
和country1
列中加入B的country2
列。您只需要确保在每次加入时使用不同的别名。
SELECT A.country1, A.country2, B1.name AS name1, B2.name as name2
FROM A
JOIN B AS B1 ON B1.code = A.country1
JOIN B AS B2 ON B2.code = A.country2
答案 1 :(得分:0)
Join应始终位于两个表的相同列类型中。 Isnull
将适合您,如果国家/地区代码存储在TableA的不同列中
SELECT name AS name1
FROM B
INNER JOIN A ON B.code = isnull(A.country1, a.Country2)
或用例陈述
SELECT name AS name1
FROM B
INNER JOIN A ON B.code = case when A.country1 is null then A.country2
else A.country1 end