Oracle Query如何计算具有价值的列范围

时间:2019-09-02 06:15:18

标签: sql oracle

我有一个问题,是否可以对具有值的列范围(第2列,第3列,第4列,第5列)中的行进行计数?

enter image description here

从表1中选择a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12;

像上面的图像一样,应该这样返回:
enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用CASE WHEN

SELECT T.*, 
CASE WHEN A2 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN A3 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN A4 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN A5 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN A6 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN A7 IS NOT NULL THEN 1 ELSE 0 END 
AS CNT
FROM YOUR_TABLE T

此查询将返回该行的非空列的计数。

干杯!