我的varchar列有3种类型的值。我想根据值的类型将它分成3列。例如,我的列是值的FactoryName
当Factory1、Factory2、Factory3的值为"ANANTA“、"ATL”和"ESBL“的respectively.The结果时,需要名为FactoryName的3列
发布于 2015-02-03 06:12:19
使用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 或conditional Aggregate
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 https://stackoverflow.com/questions/28292413
复制相似问题