Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Oracle SQL,PLSQL)如何删除完全为空的列_Sql_Oracle_Plsql - Fatal编程技术网

(Oracle SQL,PLSQL)如何删除完全为空的列

(Oracle SQL,PLSQL)如何删除完全为空的列,sql,oracle,plsql,Sql,Oracle,Plsql,我对我的Oracle SQL/PLSQL表有一个问题: 我有一张有值的表。有些列在所有行中根本没有值。因此,如何删除这些完全为空的列 如果有人建议转置表格,我就很难使用Pivot,因为值太不同了 该表大约有40列和121行 多谢各位 编辑:我的意思是,如果可以“自动”检测并删除/删除/取消选择空列,那就太好了。您可以使用聚合来识别列。以下是一种将名称放在单个列中的方法: select ((case when count(col1) = 0 then 'col1,' end) ||

我对我的Oracle SQL/PLSQL表有一个问题: 我有一张有值的表。有些列在所有行中根本没有值。因此,如何删除这些完全为空的列

如果有人建议转置表格,我就很难使用Pivot,因为值太不同了

该表大约有40列和121行

多谢各位


编辑:我的意思是,如果可以“自动”检测并删除/删除/取消选择空列,那就太好了。

您可以使用聚合来识别列。以下是一种将名称放在单个列中的方法:

select ((case when count(col1) = 0 then 'col1,' end) ||
        (case when count(col2) = 0 then 'col2,' end) ||
        . . .
       ) as cols
from t;

然后您可以使用
altertable
实际删除列。

我不理解这个问题。起初,我认为您希望删除空的列(您可以使用ALTERTABLE这样做),因为更新为NULL是无用的,因为这些值已经为NULL,但后来您说您不能使用PIVOT;它与删除值有什么关系?很快,我不知道你在说什么。我的意思是,如果可以“自动”检测并删除/删除/取消选择空列,那就太好了。没有自动过程:你需要自己写一些东西。因为这不是我们希望自动发生的事情。对物理数据模型的任何更改都需要有意识地以可控的方式进行,并适当考虑对现有应用程序的影响,例如查找和修改引用这些冗余列的代码。我的意思是,有没有办法对此进行编码,从而找出空列并删除这些列?谢谢!!“col1”和“col2”有什么用?我要把这些和alter table结合起来吗?如果是这样,怎么做?现在你又回到了“改变表”。你想做什么还不清楚。您是否希望(A)按照您对ALTER table的开场白和引用的建议,从表结构中实际删除该列,或者(B)按照您对PIVOT的引用的建议,在某些报告中绕过该列?(A)从表结构中实际删除该列,正如我的开场白和提及的TABLE@ShahbazShahSyed . . . 这些是列的名称,可以在
altertable
语句中使用。