将行转换为列

时间:2018-06-11 14:20:43

标签: sql-server pivot unique jet-sql

我有这个Project Class表,它包含Project ID,并且有21个类别标记为此Project ID和类代码。

enter image description here

当使用Project_ID查询时,项目ID及其类别类和类代码应该在一行中(在新表中),并且不应该有任何多个实例。这样的事情,

Project ID    Class_category1  Class_category2......So on
Value         Class_Code1      Class_Code 2........So on

我如何实现这一目标并使用哪个功能?

1 个答案:

答案 0 :(得分:0)

您应该使用SQL PIVOT 语法,如果您没有所有class_category数据的列表,可能必须使用dynamic pivot

您的查询应如下所示

select * 
from 
PA_PROJECT_CLASSES
pivot
(
    max(class_code) 
    for class_category in 
    (
    [254 codes],
    [330 codes],
    -- your categories in proper [] syntax
    )
)p