jzd*_*jzd 1 oracle compare oracle11g
假设所有值列具有相同的数据类型.我想在SELECT查询的结果中使用id中所有值中的最高值.
表结构:
table_a: id, value1, value2, value3, value4, value5
Run Code Online (Sandbox Code Playgroud)
示例数据:
id, value1, value2, value3, value4, value5
2, 125, 256, 133, 400, 67
3, 14, 14, 14, 3, 6
4, 325, 441, 441, 975, 3
Run Code Online (Sandbox Code Playgroud)
示例所需结果:
id, highest_value
2, 400
3, 14
4, 975
Run Code Online (Sandbox Code Playgroud)
我开始沿着CASE声明的路径开始,但是这很快就搞得一团糟.我厌倦了一个子选择,但没有让它工作.是否有一种干净的方法来比较几个列值?
在这种情况下,最大的功能将完成工作.
with t1(id1, val1, val2, val3, val4, val5) as
(
select 2, 125, 256, 133, 400, 67 from dual union all
select 3, 14, 14, 14, 3, 6 from dual union all
select 4, 325, 441, 441, 975, 3 from dual
)
select id1
, greatest(val1, val2, val3, val4, val5) Res
from t1
Run Code Online (Sandbox Code Playgroud)
结果:
Id1 Res
---------------
2 400
3 14
4 975
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |