gpt4 book ai didi

mysql - 如何在具有不同参数和别名的列中执行 SELECT?

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:59 25 4
gpt4 key购买 nike

我想根据这个表创建一个报告。我需要从同一列中的不同参数获取数据。

ID_NUMBER     ID_DOCUMENT     DOCUMENT_NAME
A001 1 DOC_A_1
A001 2 DOC_A_2
A001 3 DOC_A_3
B001 1 DOC_B_1
B001 3 DOC_B_3

SELECT参数为1和2

然后,SELECT 输出应该是:

ID_NUMBER     DOCUMENT_1     DOCUMENT_2
A001 DOC_A_1 DOC_A_2
B001 DOC_B_1 NULL

我当前的查询:

SELECT 
tdoc_1.ID_NUMBER,
tdoc_1.DOCUMENT_NAME AS "DOCUMENT_1"
FROM `document` 'tdoc_1'

LEFT OUTER JOIN (
SELECT
tdoc_1.ID_NUMBER,
tdoc_2.DOCUMENT_NAME AS "DOCUMENT_2"
FROM `document` 'tdoc_2'
WHERE `ID_DOCUMENT` = '2'
) temp_doc ON tdoc_1.ID_NUMBER = temp_doc.ID_NUMBER
WHERE ID_NUMBER = 1

列数据量大,查询速度快

最佳答案

在这里您只需要一些带有旋转逻辑的聚合:

SELECT
ID_NUMBER,
MAX(CASE WHEN ID_DOCUMENT = 1 THEN DOCUMENT_NAME END) AS DOCUMENT_1,
MAX(CASE WHEN ID_DOCUMENT = 2 THEN DOCUMENT_NAME END) AS DOCUMENT_2
FROM document
GROUP BY
ID_DOCUMENT
ORDER BY
ID_DOCUMENT;

如果您希望文档列具有灵 active ,那么您需要一些动态 SQL。它不能硬编码。

关于mysql - 如何在具有不同参数和别名的列中执行 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58656213/

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