select 只有包含值的列(Oracle - 顶点)

select only columns containing values (Oracle - apex)

例如,我有 table 5 列,其中 2 列不包含值。我只想在我的 Apex 报告中显示具有值的列,并从报告中隐藏提到的 2 列。如何实现?是否只能使用 sql 查询?或者我需要使用 pl/sql 动态内容?

您需要查看报告结果中的每一行才能知道是否显示该列 - 这可能效果不佳,但可以做到。在每一列上,您需要使用 SQL 查询创建类型为 "no rows returned" 的服务器端条件,例如:

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

请注意,this_column 需要是您设置条件的列的名称,(report where clause) 与报表本身具有的 where 子句相同。

尝试

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

如果列的类型不同,您可能需要对其中一些列进行 CAST,例如TO_CHAR(col1) 而不是 col1.