首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将列拆分为不同的列?

如何将列拆分为不同的列?
EN

Stack Overflow用户
提问于 2015-02-03 06:07:05
回答 1查看 56关注 0票数 1

我的varchar列有3种类型的值。我想根据值的类型将它分成3列。例如,我的列是值的FactoryName

  1. 阿南塔
  2. 阿南塔
  3. 阿特尔
  4. ESBL
  5. 阿特尔
  6. 阿特尔

当Factory1、Factory2、Factory3的值为"ANANTA“、"ATL”和"ESBL“的respectively.The结果时,需要名为FactoryName的3列

  • Factory1
  • 阿南塔
  • 阿南塔
  • Factory2
  • 阿特尔
  • 阿特尔
  • 阿特尔 我能用箱子还是别的什么来做这个吗?多么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 06:12:19

使用Pivot转换数据

代码语言:javascript
复制
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 

conditional Aggregate

代码语言:javascript
复制
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聚合

代码语言:javascript
复制
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 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28292413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档