如何编写将电话号码从列转换为单列的 SQL 查询。假设有多个 personID,每个 personID 最多有 3 种电话类型,Primary、Secondary 和 Tertiary。目前,对于每个人,他们都列在三个单独的列中。
期望的结果是电话号码都在一个列中,而另一列有电话类型
当前数据
| Person_ID | 常用电话 | 次要电话 | Tertiary_Phone |
|---|---|---|---|
| 1 | 2221111111 | 5551111111 | 9991111111 |
| 2 | 2221111112 | 5551111112 | 9991111112 |
| 3 | 2221111113 | 5551111113 | 9991111113 |
| 4 | 2221111114 | 5551111114 | 9991111114 |
所需数据
| Person_ID | 电话号码 | 电话类型 |
|---|---|---|
| 1 | 2221111111 | 基本的 |
| 1 | 5551111111 | 中学 |
| 1 | 9991111111 | 第三 |
| 2 | 2221111112 | 基本的 |
| 2 | 5551111112 | 中学 |
| 2 | 9991111112 | 第三 |
| 3 | 2221111113 | 基本的 |
| 3 | 5551111113 | 中学 |
| 3 | 9991111113 | 第三 |
| 4 | 2221111114 | 基本的 |
| 4 | 5551111114 | 中学 |
| 4 | 9991111114 | 第三 |