2017-08-02 63 views

回答

1

不知道大熊貓是,但良好的老CASE應該做(和它的作品在所有主要的數據庫引擎):

SELECT COUNT(CASE WHEN column_name IS NULL THEN 1 END) ... 
+0

...繼續像'from table_name'一樣基本上 –

+0

當然。但是你手動需要指定所有列?有沒有一種解決方案可以自動執行? –

+0

這是另一個問題。您需要查看動態SQL。 –

1

您可以使用:

SELECT COUNT(*) - COUNT(column_name) 
FROM table_name 

COUNT(*)(或等價地, COUNT(1))將對行進行計數,而不管是否有任何列具有NULL值,並且COUNT(column_name)將計算非NULL值(如果存在,可以使用該列上的索引)。

+0

當然。但是你手動需要指定所有列?有沒有一種解決方案可以自動執行? –

+0

@GeorgHeiler如果你沒有指定列,數據庫如何知道你想要計算哪些列的NULL值? SQL中沒有任何方法可以爲所有列重複相同的操作(除非您要在數據字典上使用動態SQL和查詢,但效率會降低)。 – MT0

+0

有沒有辦法簡單地使用表中的所有列?也許通過PLSQL? –