如何在SQL Server中为多列数据赋予等级?

时间:2019-02-04 12:02:01

标签: sql-server sql-server-2012

我有如下所示的输入表-

ID  Name q1     q2      q3      q4
1   a    2621   2036    1890    2300
2   b    18000  13000   14000   15000
3   c    100    200     300     400

我想为每一行的列(q1, q2, q3 and q4)数据排序。例如,如果我考虑上述输入的最后一行,则q4列包含的400值要比其他列高,因此到q4列的排名将是1q3等级为2q2等级为3q1等级为4

我正在寻找类似-

的输出
id  name  q1  q2  q3  q4
1   a     1   3   4   2
2   b     1   4   3   2
3   c     4   3   2   1

输入表中存在超过100,000条记录。

我为输入表创建了小型SQL脚本,即

declare @temp table (ID int, Name varchar(10), q1 int, q2 int, q3 int, q4 int)

insert into @temp
select 1, 'a', 2621, 2036, 1890, 2300
union all
select 2, 'b', 18000, 13000, 14000, 15000
union all
select 3, 'c', 100, 200, 300, 400

select * from @temp

请帮助我找到解决此问题的有效方法。

1 个答案:

答案 0 :(得分:9)

您需要[ngClass]="{'btn': true, 'btn-primary': booleanVar, 'btn-danger': !booleanVar}" UNPIVOT

PIVOT