所以我有一个基表-TRAINING
,它有100列。一些列将完全为NULL,而某些列将包含Values。所以说COLUMN 1-20
为空,COLUMN 21-100
不为空。
我还有另一个表-CONFIGURATION
。它只有VARCHAR
类型的一列。该表包含TRAINING表中不是NULL
的那些列的名称。因此它将包含值-COLUMN 21-100
。
我想做的是-仅获取非NULL列的数据。因此,我希望将输出作为表COLUMN 21-100
中包含的数据点。此数字可能每次都不同,也可以交错,例如COLUMN 1-10
为NULL,COLUMN 11-25
不是NULL
,其余为NULL。
我正在考虑实现内部Join,但是我没有所需的表结构。
请提供一些提示。
谢谢。
答案 0 :(得分:1)
您需要为此创建动态SQL。
第一步-创建All com.android.support libraries must use the exact same version...
数据类型的ALL_COLUMNS
变量。
从VARCHAR(5000)
表中选择要查询的列名。然后使用CONFIGURATION
函数将它们聚合为单个值(在我的示例中,STRING_AGG
是COL1
表中的列)。将输出分配给CONFIGURATION
变量
第二步使用ALL_COLUMNS
运行动态SQL。添加EXECUTE IMMEDIATE
变量作为该查询的输入。
这是示例代码:
ALL_COLUMNS