为什么对一个字符串数据列的pivoting可以用row_number进行?

问题描述 投票:0回答:1

我有一个问题,我需要在一个字符串列上进行pivoting。我在下面的链接中找到了解决方法,但是不明白为什么当使用row_number时,对字符串数据列的pivoting可以工作。

需要在SQL服务器中对字符串值进行枢轴操作。

表的定义。

ColumnName  DataType
----------  --------
Occupation  String 
Name        String

数据。

Occupation  Name
----------  ----
Developer    A
Developer    B
Designer     X
Coder        Y
Coder        Z

使用的查询是:

SELECT  [Developer],
        [Designer],
        [Coder]
FROM (
      SELECT  *,
              ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY (SELECT NULL)) 
              RN
      FROM 
           #temp
     ) as t
PIVOT 
    (
      MAX(Name) 
      FOR Occupation 
      IN ([Developer],[Designer],[Coder])
    ) as pvt    

输出:

Developer   Designer    Coder
A           X           Y
B           NULL        Z
sql pivot row-number
1个回答
0
投票

在前面的问题中,我们使用了'MAX'聚合函数。Row_number函数给表增加了一个维度,然后你就得到了这个。

Developer   Designer    Coder
A              X          Y
B             NULL        Z

而不是这个:

Developer   Designer    Coder
B              X          Z
© www.soinside.com 2019 - 2024. All rights reserved.