gpt4 book ai didi

sql - 获取表的行作为第二个表中的列

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:28 24 4
gpt4 key购买 nike

如果之前有人问过这个问题,我提前道歉。

我有两张 table 。表一有三列 CustomerID, SequenceNum, Value,表二有大量的列。我想用表一的值按列而不是按行填充表二的列。

一个例子:

------------------------------------
| CustomerID | SequenceNum | Value |
------------------------------------
| 1 | 1 | A |
------------------------------------
| 1 | 2 | B |
------------------------------------
| 1 | 3 | C |
------------------------------------
| 2 | 1 | Q |
------------------------------------
| 2 | 2 | R |
------------------------------------
| 3 | 1 | X |
------------------------------------

成为

---------------------------------------------------------------------
| CustomerID | PrimaryVal | OtherVal1 | OtherVal2 | OtherVal3 | ... |
---------------------------------------------------------------------
| 1 | A | B | C | NULL | ... |
---------------------------------------------------------------------
| 2 | Q | R | NULL | NULL | ... |
----------------------------------------------------------------------
| 3 | X | NULL | NULL | NULL | ... |
---------------------------------------------------------------------

本质上。表一中的每个唯一 CustomerID 在表二中都有一行。特定 CustomerID 的每个 SequenceNum 将填充表二中 PrimaryVal、OtherVal1、OtherVal2 等 下的一列。 SequenceNum 等于 1 的行将填充 PrimaryVal 字段,2-18(最大序列长度为 18)将填充 OtherVal#.

我看到的主要问题是序列中值的可变数量。有些序列可能只包含 1 行,有些会填满所有 18 个位置,以及介于两者之间的任何位置。

任何有关如何解决此问题的建议将不胜感激。谢谢。

最佳答案

鉴于您知道它最多有 18 列,我会采用正常的枢轴路线。

select customerID, Pivoted.*
from Customer
pivot( Value for sequencenum in (1,2,3,4,5,6, upto 18)) as Pivoted

我在这里很懒,没有给列起别名,但如果需要的话你可以。

关于sql - 获取表的行作为第二个表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31320963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com