如您所知,Oracle将NULL视为GROUP BY查询中的一个"值".是否有解决方法将数据分组,将NULL视为不同的值.例如:
表t:
colA colB
A 1
A 5
<null> 3
<null> 2
Run Code Online (Sandbox Code Playgroud)
select colA, min(colB) from t group by colA 收益:
colA colB
A 1
<null> 2
Run Code Online (Sandbox Code Playgroud)
但我想要一个返回的查询:
colA colB
A 1
<null> 3
<null> 2
Run Code Online (Sandbox Code Playgroud)
提前致谢
SELECT colA, MIN(colB)
FROM t
WHERE colA IS NOT NULL
GROUP BY colA
UNION ALL
SELECT colA, colB
FROM t
WHERE colA IS NULL
Run Code Online (Sandbox Code Playgroud)
@ lc的答案很棒,但这项运动只是另一种解决方案:
SELECT colA, min(colB)
FROM t
GROUP BY nvl(colA, rownum),colA
Run Code Online (Sandbox Code Playgroud)
而这里是一个sqlfiddle演示
| 归档时间: |
|
| 查看次数: |
12561 次 |
| 最近记录: |