一尘不染

如何检测和删除仅包含空值的列?

sql

在我的表 table1中 ,有6列位置,a,b,c,d,e。

Locations [a]   [b]   [c]  [d]   [e]

[1]       10.00 Null  Null 20.00 Null

[2]       Null  30.00 Null Null  Null

我需要像这样的结果

Locations [a]   [b]   [d]

[1]       10.00 Null  20.00

[2]       Null  30.00 Null

我的问题是如何使用sql查询来检测和删除包含所有空值的列。是否有可能?

如果是的话,请帮助并提供样品。


阅读 140

收藏
2021-03-17

共1个答案

一尘不染

如何检测给定列是否仅具有NULL值:

SELECT 1  -- no GROUP BY therefore use a literal
  FROM Locations
HAVING COUNT(a) = 0 
       AND COUNT(*) > 0;

结果集将由零行(列a具有非NULL值)或一行(列a仅具有NULL值)组成。FWIW此代码是标准SQL-92。

2021-03-17