数据库用的 Oracle 。
多行数据根据 code 字段合并为一行,再根据 type 字段判断:
- 当 type=1 时,该行的 field1, field2, field3 = value1, value2, value3
- 当 type=2 时,该行的 field1, field2, field3 = value4, value5, value6
- 当 type=3 时,该行的 field1, field2, field3 = value7, value8, value9
数据库用的 Oracle 。
多行数据根据 code 字段合并为一行,再根据 type 字段判断:
1
Jf35jxN3fwBXyeLh Apr 24, 2023
以前有个网站好像叫 帮你百度一下,以后可能会有 帮你 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 )。 |
2
ccraohng Apr 24, 2023
CASE 就行
SELECT CASE WHEN xxx TEHN 1 END |
3
chosen1cwp Apr 24, 2023
select GROUP_CONCAT(concat("'",name,"'")) from table group by field
|