我有数据如下2表,
| 罗勒|lang_opted|
| --|--|
| 1 | 1 |
| 1 | 2 |
| 2 | 5 |
| 3 | 4 |
Lang_table
| lang_id|郎|
| --|--|
| 1 |lang1|
| 2 |lang2|
| 3 |lang3|
| 4 |lang4|
| 5 |lang5|
我需要连接上面的两个表并获得如下数据,
我们在Oracle中有这些数据。请建议提出一个查询得到这个结果。
| 罗勒|lang1| lang2| lang3| lang4| lang5|
| --|--|--|--|--|--|
| 1 |Y| Y| N| N| N|
| 2 |N| N| N| N| Y|
| 3 |N| N| N| Y| N|
已尝试左联接、交叉联接、透视,不存在,但仍无法获得预期结果。
1条答案
按热度按时间a2mppw5e1#
你不太可能有这么多的语言,你真的需要“动态SQL”,所以,如果你可以接受硬编码的语言作为列标题,那么你可以使用简单的“条件聚合”
你可以使用“pivot”,但坦率地说,我认为上面的更简单。你可以按照你想要的任何顺序排列列。如果你在任何时候添加一种新的语言,只需添加另一个带有标题的条件聚合即可。