只选择包含值的列(Oracle - apex)

问题描述:

例如,我有5列的表,其中2列不包含值。我想在我的Apex报告中只显示具有值的列,并隐藏报告中提到的2列。如何实现它?它只能用于sql查询吗?或者我需要使用pl/sql动态内容?只选择包含值的列(Oracle - apex)

+0

“其中不为空” – OldProgrammer

+0

它不起作用。我的表格包含5列,我需要隐藏2列没有值 – john179

+0

@OldProgrammer - 这将无法正常工作,OP想要隐藏列,而不是行 –

您需要查看报告结果中的每一行以了解是否显示该列 - 这可能表现不佳,但可以完成。在每一列,你需要创建类型的服务器端状态“没有行返回”用SQL查询,如:

select 1 
    from my_table 
where (report where clause) 
    and this_column is not null 

注意this_column需要在列的名字,你是在把条件,而(report where clause)与报告本身的where子句相同。

+0

我已经用emp表试过了,但是出现错误:ORA-06550:第4行第2列:ORA-00936:缺少表达式。 'select 1 from emp where(select ename,job,mgr from emp) AND ename IS NOT NULL;' – john179

+0

是的,您的SQL报价无效!我的意思是“where”子句,而不是整个查询。看起来你没有'where'子句,所以只需要'从en where IS NOT NULL'选择1 –

尝试

SELECT 
    COALESCE(col1, col2, col3) colA, 
    COALESCE(col2, col3, col4) colB, 
    COALESCE(col3, col4, col5) colC 
FROM myTable 

如果列是不同的类型,你可能需要例如扮演他们的一些TO_CHAR(col1)而不是col1