gpt4 book ai didi

mysql - 列数未知的 SQL 查询

转载 作者:行者123 更新时间:2023-11-30 23:08:07 25 4
gpt4 key购买 nike

我在一个表上编写了一个查询,其中包含针对“公司”的“声明”列表,就像这样(显然已简化):

Statement     | Company
---------------------------
ABC | CompA
ABC | CompB
DEF | CompC

查询显示如下信息:

Statement    | CompA | CompB | Comp C
--------------------------------------
ABC | X | X |
DEF | | | X

使用这样的代码:

SELECT 
[Requirement_Text],
CASE WHEN(SUM(CASE WHEN Company = 'CompA' THEN 1 END)) IS NOT NULL THEN 'X' ELSE ' ' END AS CompA,
CASE WHEN(SUM(CASE WHEN Company = 'CompB' THEN 1 END)) IS NOT NULL THEN 'X' ELSE ' ' END AS CompB,
CASE WHEN(SUM(CASE WHEN Company = 'CompC' THEN 1 END)) IS NOT NULL THEN 'X' ELSE ' ' END AS CompC,
CASE WHEN(SUM(CASE WHEN Company IS NULL THEN 1 END)) IS NOT NULL THEN 'X' ELSE ' ' END AS NILL
FROM [StatementTable]

现在,这很容易,因为我们的公司数量有限,但如果我们说将其下移到部门级别(而不是公司),那么我们还有更多(未知数量 - N)。

所以问题是,如何根据输入表给定列中不同值的数量在输出表中创建列?

例如:

Statement  | Company   | Department
---------------------------------------
ABC | CompA | Dept(1)
DEF | CompA | Dept(2)
DEF | CompA | Dept(3)
GHI | CompA | Dept(3)
ABC | CompB | Dept(N-1)
DEF | CompC | Dept(N)

将成为:

Statement  | Dept(1) | Dept(2) | Dept(3) | Dept(N-1) | Dept(N)
---------------------------------------------------------------
ABC | X | | | X |
DEF | | X | X | | X
GHI | | | X | |

注意:在这种情况下,我忽略了公司名称。

提前致谢。

最佳答案

你应该使用动态查询和 Pivote :

Check This out

您可以在此处查看文档: Check this

关于mysql - 列数未知的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965107/

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