如何获取表中非空列的数据

2020-09-11 00:41发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个包含数百个列的表,其中许...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个包含数百个列的表,其中许多为空,并且我希望使用select语句,以便仅返回那些包含值的列。 这将帮助我更好地分析数据。 像这样:

从表名中选择(非空列);

我想选择所有具有至少一个非空值的列。

可以做到吗?

2条回答
Nir深蓝
2020-09-11 01:20

我可以使用以下过程来实现

但是我需要在不使用多个insert语句和动态SQL的情况下知道更好的解决方案,因为一个表中大约有500列?

过程" a.db.procedures :: notnull"()

语言SQLSCRIPT

SQL安全调用程序-默认模式-

以BEGIN开头读取SQL数据/*****************************************编写过程逻辑 ******************************************/DECLARE ALL_COLUMNS_LIST NVARCHAR(5000);

声明col整数;

声明col2整数;

声明col3整数;

声明col4整数;

声明col5整数;

声明col6整数;

创建本地临时表#not_null(seq INTEGER,ALL_COLUMNS NVARCHAR(3000),COUNT1 INTEGER);

从"表"中选择COUNT(" COL_1")放入col1; 插入#not_null值('COL_1',:col1); 从"表"中选择COUNT(" COL_2")到col2; 插入#not_null值('COL_2',:col2); 从"表"中选择COUNT(" COL_3")IN到col3; 插入#not_null值('COL_3',:col3); 从"表"中选择COUNT(" COL_4")IN到col4; 插入#not_null值('COL_4',:col4); SELECT COUNT(" COL_5")从" table"进入col5; 插入#not_null值('COL_5',:col5); 从"表"中选择COUNT(" COL_6")INTO col6; 插入#not_null值('COL_6',:col6); --ALL_COUNT =从#not_null选择" ALL_COLUMNS",其中COUNT1> 1;

从#not_null WHERE COUNT1> 1中选择STRING_AGG(ALL_COLUMNS,','ORDER BY ALL_COLUMNS)进入ALL_COLUMNS_LIST。

立即执行('SELECT'||:ALL_COLUMNS_LIST ||'来自"表"');

DROP表#not_null; 结束