我有一个包含5列的表格。数据的特征是一行中的所有值都相同......但每列中并不总是有值。一个例子是
h1 h2 h3 h4 h5
1 1 1
2 2 2
4 4 4
8 8
21 21
我想创建一个列,列出每行中的唯一编号。例如。输出将是:
output
1
2
4
8
21
我怎么能这样做?
答案 0 :(得分:2)
检查GREATEST()条件表达式,该表达式为每行返回单个最大值
SELECT GREATEST(h1,h2,h3,h4,h5)
FROM tableName
当然,您也可以使用 LEAST()获取最小值。
忽略NULL 值,如果行的表达式中的所有列都 NULL ,则返回 NULL 。
答案 1 :(得分:1)
select distinct
coalesce(h1,coalesce(h2,coalesce(h3,coalesce(h4,h5))))
from your_tab
order by 1
编辑:
distinct
是多余的,只需要一个coalesce()
:
select coalesce(h1, h2, h3, h4, h5)
from your_tab
order by 1 ;