Oracle中統計符合某列條件的列總數

來源:互聯網
上載者:User

最近在項目報表中需要一個查詢語句,用來統計符合某一列條件的其它幾列的個數

比如有下面一個表結構:

  

 需要在列D後面增加一列,統計在列A不為空白,並且列B、C、D不為空白的個數

 經過自己實驗,尋找協助,總算實現了上面的查詢。

 首先講幾個函數的用法:

 NULL:指的是空值,或者非法值。
 NVL (expr1, expr2)

 參數說明:如果expr1為NULL,返回expr2;不為NULL,返回expr1。注意兩者的類型要一致
 NVL2 (expr1, expr2, expr3)

 參數說明:如果expr1不為NULL,返回expr2;為NULL,返回expr3。expr2和expr3類型不同的話,expr3會轉換為expr2的類型
 NULLIF (expr1, expr2)

 參數說明:如果相等返回NULL,不等返回expr1

 

 下面是本人通過兩種方法實現的結果

 方法一:

代碼

 1 Select a,
 2        b,
 3        c,
 4        d,
 5        Case
 6          When a Is Not Null Then
 7           Nvl2(b, 1,0) + Nvl2(c, 1,0) + Nvl2(d, 1,0)
 8          Else
 9           0
10        End E
11   From AA

 方法二:

代碼

 1 Select a,
 2        b,
 3        c,
 4        d,
 5        Case
 6          When a Is Not Null Then
 7           decode(b,'',0,1) + decode(c,'',0,1) + decode(d,'',0,1)
 8          Else
 9           0
10        End E
11   From AA

 

 顯示:

 

如果大家有其它好的方法,歡迎提出交流~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.