这个问题在这里已经有答案了:
获取列中的前6项以透视到sql中的行(1个答案)
需要动态数据透视,行号为()(1个答案)
11个月前关门了。
我有以下格式的数据:
col1 | col2 | col3 | rank
--------------------------
A | 1 | D1 | 1
A | 1 | D2 | 2
A | 1 | D3 | 3
B | 5 | E! | 1
B | 5 | E@ | 2
B | 5 | E# | 3
B | 5 | E$ | 4
C | 3 | F1 | 1
C | 3 | F2 | 2
我想用col3来透视它,但是想保留列 col1, col2
在结果表中。另外,在创建数据透视列时,我希望确保只拾取固定列。例如,如果rank threshold为3,则输出如下所示:
col1 | col2 | P1 | P2 | P3
------------------------------
A | 1 | D1 | D2 | D3
B | 5 | E! | E@ | E#
说明:
1. In the output, the two rows with ``col1==C`` are dropped since they don't meet the rank threshold 3.
2. The row with ``col3==E$`` is dropped since it's rank is higher than the rank threshold 3.
有没有一种方法可以通过SQLServer实现这一点?
1条答案
按热度按时间5ssjco0h1#
用下列方法尝试
case
声明,这是演示。输出: