gpt4 book ai didi

sql - 如何将一列拆分为不同的列

转载 作者:搜寻专家 更新时间:2023-10-30 23:04:32 24 4
gpt4 key购买 nike

我有一个包含 3 种类型值的 varchar 列。我想根据值的类型将它分成 3 列。例如我的专栏是, 值的工厂名称

  1. 阿南塔
  2. 阿南塔
  3. ATL
  4. 英语学习
  5. ATL
  6. ATL

当 FactoryName 的值分别为“ANANTA”、“ATL”和“ESBL”时,我想要名为 Factory1、Factory2、Factory3 的 3 列。结果应该是这样的

  • 工厂 1
  • 阿南塔
  • 阿南塔
  • 工厂 2

  • ATL
  • ATL
  • ATL

    我可以用 case 或其他东西来做这个吗?如何?

最佳答案

使用Pivot转置数据

CREATE TABLE #comp
(
name VARCHAR(50)
)

INSERT #comp
VALUES ('ANANTA'),('ANANTA'),('ATL'),
('ESBL'),('ATL'),('ATL')

SELECT [ANANTA] AS factory1,
[ATL] AS factory2,
[ESBL] AS factory3
FROM #comp
PIVOT (Max(name)
FOR name IN ([ANANTA],
[ATL],
[ESBL])) piv

条件聚合

select  max(case when name = 'ANANTA' then name end) factory1,
max(case when name = 'ATL' then name end) factory2,
max(case when name = 'ESBL' then name end) factory3
from #comp

更新:如果您不想将结果显示为单行,则删除 max 聚合

SELECT CASE WHEN name = 'ANANTA' THEN name END factory1,
CASE WHEN name = 'ATL' THEN name END factory2,
CASE WHEN name = 'ESBL' THEN name END factory3
FROM #comp

关于sql - 如何将一列拆分为不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28292413/

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