gpt4 book ai didi

sql - 使用自连接将行转换为列

转载 作者:行者123 更新时间:2023-12-04 06:13:53 25 4
gpt4 key购买 nike

我有一个名为 category 的表,其值如下,

类别 ID |值(value) |旗帜

1 25 a

2 26 a
3 27 a
128平方米23米
1 36

现在我想根据标志将该表中存在的行转换为列,例如

类别 ID |值(value) | mValue |值
1 25

2 26 23 33
3 27

我正在尝试根据类别 id 进行连接,但即使我在查询中使用了左外连接,我也只是在结果集中获取了匹配的记录(内连接)。

我的查询:

SELECT 
A.CategoryId,
A.Value AS actual,
B.Value AS projected,
C.Value AS Manual
FROM ((a AS A left JOIN b AS B ON A.categoryid=B.categoryid)
left JOIN c AS C ON A.categoryid=C.categoryid)
WHERE (((A.flag)="a") and ((B.flag)="p") and ((C.flag) ="m"))

如果我有 3 个不同表中的数据,我会得到正确的结果。

我只想检查使用自连接时将行转置为列的最佳方法是什么...

谢谢,
巴拉尼

最佳答案

尝试这个:

SELECT CategoryId, 
MIN(SWITCH(YourTable.Flag = 'a',Value)) AS aValue,
MIN(SWITCH(YourTable.Flag = 'm',Value)) AS mValue,
MIN(SWITCH(YourTable.Flag = 'p',Value)) AS pValue
FROM YourTable
GROUP BY CategoryId

关于sql - 使用自连接将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488262/

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