数据库多行转一个行的问题

2023-04-24 10:13:30 +08:00
 7911364440

数据库用的 Oracle 。

多行数据根据 code 字段合并为一行,再根据 type 字段判断:

1194 次点击
所在节点    程序员
3 条回复
YouKnowIt
2023-04-24 10:49:13 +08:00
以前有个网站好像叫 帮你百度一下,以后可能会有 帮你 ChatGPT 一下 这种网站,以下是来自 chatgpt 的回答:
您可以使用 Oracle 的 PIVOT 和 UNPIVOT 函数来实现根据 code 字段合并行并按照 type 字段转换列的操作。具体实现过程将包括以下步骤:

1.使用 PIVOT 函数将具有相同 code 值的多行数据合并为单个行。
2.使用 UNPIVOT 函数将 type 字段转换为列并将对应的值填入相应的字段中。
3.使用 SELECT 语句来检索结果。

下面是一个示例 SQL 查询:
SELECT * FROM
(
SELECT code, type, field1, field2, field3
FROM your_table
)
PIVOT
(
MAX(field1) AS field1, MAX(field2) AS field2, MAX(field3) AS field3
FOR type IN (1, 2, 3)
)
UNPIVOT
(
value
FOR (field, type) IN ((field1, 1), (field2, 1), (field3, 1), (field1, 2), (field2, 2), (field3, 2), (field1, 3), (field2, 3), (field3, 3))
);
这将返回一个结果集,其中每个行包含相同的 code 值,以及列名( field )和相应的值( value )。
ccraohng
2023-04-24 11:20:18 +08:00
CASE 就行
SELECT CASE WHEN xxx TEHN 1 END
chosen1cwp
2023-04-24 11:41:05 +08:00
select GROUP_CONCAT(concat("'",name,"'")) from table group by field

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/934965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX