gpt4 book ai didi

SQL SELECT 多列合并为 1

转载 作者:行者123 更新时间:2023-12-02 09:26:39 25 4
gpt4 key购买 nike

我不想连接任何东西。相反,给定一个具有多列的表,我想要一个 SELECT 语句,该语句将返回这些列中的每一列,就好像它们存在于不同的行中一样(ONE COLUMN )。示例...

TABLE                         +--------+---------+---------+                             +--------+|Person1 | Person2 | Person3 |                             |Person  |+========+=========+=========+   SELECT *ANSWER HERE*      +========+|Alex    | Ben     | Charlie |   FROM PEOPLE               |Alex    |+--------+---------+---------+   ORDER BY *person*?        +--------+|Dale    | Eric    | Gary    |                             |Ben     |+--------+---------+---------+   RETURNS ------------>     +--------+                                                           |Charlie | ^^^ NOTE ABOVE HOW WE ^^^                                 +--------+    HAVE THREE COLUMNS                                     |Dale    |                                                           +--------+                                                           |Eric    |                       NOTE HOW WE ONLY                    +--------+                       RETURN ONE COLUMN -------------->   |Gary    |                                                           +--------+         

注意:我们从一个具有三列的表格开始,现在返回一个结果,就好像每一行都是独立的一样。

最佳答案

您可以使用 UNPIVOT,但 UNION 也可以工作。更改为 UNION ALL 以包含重复项。

SELECT  Person1 [Person]
FROM People
UNION
SELECT Person2
FROM People
UNION
SELECT Person3
FROM People

如果您想尝试 UNPIVOT 来比较性能,它看起来像这样。

SELECT DISTINCT
Person
FROM People
UNPIVOT (
Person
FOR Persons IN ([Person1],[Person2],[Person3])
) up

使用表值构造函数

SELECT DISTINCT
Person
FROM People
CROSS APPLY (VALUES(Person1),(Person2),(Person3)) t(Person)

关于SQL SELECT 多列合并为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331024/

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