关于将单表两行多列数据合并为一行多列的SQL实现求助
求助:如何用SQL将单表两行多列数据合并为一行多列?
嗨各位,我现在有个SQL数据处理的需求卡壳了,想请教下大家怎么实现。
先给大家看下我的原始表结构和数据:
| ID | Name | Serial | SentYN | Data | Type |
|---|---|---|---|---|---|
| 1 | test1 | SerialA | 1 | 2024-06-20 | EX1 |
| 2 | test2 | SerialB | 0 | 2024-06-19 | Ex2 |
我想要把这两行数据合并成一行多列的结果,列名要对应加上1和2的后缀,目标结构和数据是这样的(注:修正了原需求里的表头笔误,把重复的SentYN2改成了SentYN1):
| ID1 | ID2 | Name1 | Name2 | Serial1 | Serial2 | SentYN1 | SentYN2 | Data1 | Data2 | Type1 | Type2 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | test1 | test2 | SerialA | SerialB | 1 | 0 | 2024-06-20 | 2024-06-19 | EX1 | Ex2 |
我自己试着写了点开头,但后面不知道怎么把第二行的对应字段也拼进来,卡在这里了:
SELECT CASE WHEN Type = 'EX1' THEN ID END AS ID1, -- 这里不知道怎么继续把第二行的对应字段整合到同一行
想请教下各位,有没有合适的SQL写法能实现这个需求呀?麻烦大家帮忙看看~
备注:内容来源于stack exchange,提问作者Lili's
相关产品推荐
相关产品推荐

