我有一个表,其中每个标识符值都是唯一的。根据它的cc还是dc,我需要用不同的表连接它,例如,如果它的“cc”我需要将它Map到表b,如果它的“dc”我需要将它Map到表c。
表a:
ID | IDENTIFIER
1 | CC_1234567
2 | DC_9494949
表b:
ID| SOURCE. |INSTRUMENT
7 | 1234567. | 545454
表c:
ID | SOURCE | INSTRUMENT
8 |. 9494949 |. 63636363
我希望结果如下:
IDENTIFIER | INSTRUMENT
CC_1234567 | 545454
DC_9494949 | 63636363
首先,如何从“cc\u 1234567”中获取“1234567”;其次,在编写连接查询时,我将获取最终结果表中的其他列,例如b.instrument、c.instrument。表a中的每个标识符只Map到表b或表c。
Select A.IDENTIFIER, B.INSTRUMENT, C.INSTRUMENT
from table.A
inner join table.A on A.IDENTIFIER=B.INSTRUMENT AND A.IDENTIFIER=C.INSTRUMENT
3条答案
按热度按时间ycggw6v21#
你可以
left join
两次,然后使用coalesce()
在select
条款:如果两个表中都有匹配项,则上面的查询将优先考虑
tableb
.如果要排除两个表中不匹配的行,则可以添加以下内容
where
条款:v1uwarro2#
可以按如下方式使用并集:
根据“cc\ux”或“dc\ux”,您可以连接不同的表并使用union进行合并。
olmpazwi3#
试试这个:正确的函数与长度相结合,应该会给你一个方便的方法来剥离这些。