【发布时间】:2020-06-18 15:27:03
【问题描述】:
在 SQL 中,我们需要按以下方式转换表:
表1:
+-----+---------+-----------+
| ID | insured | DOD |
+-----+---------+-----------+
| 123 | Pam | 6/18/2013 |
| 123 | Nam | 2/12/2010 |
| 123 | Tam | 2/10/2013 |
| 456 | Jessi | 4/6/2003 |
| 457 | Ron | 4/10/2010 |
| 457 | Tom | 5/5/2008 |
+-----+---------+-----------+
所需的输出表:
+-----+---------+-----------+-----------+-----------+
| ID | insured | DOD1 | DOD2 | DOD3 |
+-----+---------+-----------+-----------+-----------+
| 123 | Pam | 6/18/2013 | 2/12/2010 | 2/10/2013 |
| 456 | Jessi | 4/6/2003 | null | null |
| 457 | Ron | 4/10/2010 | 5/5/2008 | null |
+-----+---------+-----------+-----------+-----------+
我曾在某处看到我们可以使用 pivot 和 unpivot,但我不确定如何在这里使用它。
非常感谢您的帮助。
【问题讨论】:
-
日期的顺序重要吗?如果是这样,则没有足够的信息来回答您的问题。
-
感谢您的快速回复@GordonLinoff。是的,DOD1 的日期顺序很重要,输出表中的被保险人是主要被保险人,他们的 DOD 应该在 F 列之后的 G 列中跨度>
标签: sql oracle transpose window-functions