Sql 根据行中哪个列的值较大进行分类
我有一个如下所示的表格:Sql 根据行中哪个列的值较大进行分类,sql,sql-server,Sql,Sql Server,我有一个如下所示的表格: id|value_1 |value_2 |value_3 |value_4 1 |0.2 |0.3 |0.1 | 0.4 2 |0.6 |0.1 |0.1 | 0.2 3 |0.1 |0.2 |0.3 | 0.4 我想根据列中的最高值(值_1、值_2、值_3、值_4)对每一行进行分类 预期产出: ID|Category 1|4 2|1 3|4 有人可以建议一种使用SQL查询实现此目的的方法
id|value_1 |value_2 |value_3 |value_4
1 |0.2 |0.3 |0.1 | 0.4
2 |0.6 |0.1 |0.1 | 0.2
3 |0.1 |0.2 |0.3 | 0.4
我想根据列中的最高值(值_1、值_2、值_3、值_4)对每一行进行分类
预期产出:
ID|Category
1|4
2|1
3|4
有人可以建议一种使用SQL查询实现此目的的方法吗?您可以使用
apply
实现此目的:
select t.*, v.category
from t cross apply
(select top (1) v.*
from (values (value_1, 'value_1'),
(value_2, 'value_2'),
(value_3, 'value_3'),
(value_4, 'value_4')
) v(val, category)
order by val desc
) v;