2017-07-18 8 views
0

たとえば、2つの列に値が含まれていない5列の表があります。私はApexレポートに値のある列のみを表示し、レポートから2列を非表示にしたいと考えています。それを達成する方法? SQLクエリでのみ可能ですか?または、私はpl/sqlの動的コンテンツを使用する必要がありますか?値を含む列のみを選択する(Oracle - apex)

+0

"<カラム名>はnullではありません" – OldProgrammer

+0

これは機能しません。私のテーブルには5つのカラムがあり、2つのカラムを値なしで非表示にする必要があります – john179

+0

@OldProgrammer - 動作しません。OPはカラムを非表示にしたいのですが、ローではない –

答えて

1

列を表示するかどうかを知るには、レポートの結果のすべての行を調べる必要があります。これはうまく行かないかもしれませんが、実行できます。 this_columnはあなたが上の条件を入れている列の名前にする必要があることを

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

注:各列に次のようなSQLクエリに「行が戻されなかっ」タイプのサーバー側の条件を作成する必要があります、(report where clause)は、レポート自体にあるwhere句と同じです。

+0

私はempテーブルで試しましたが、エラーがあります。ORA-06550:4行目、2列目:ORA-00936:式がありません。 'select 1 emp (select ename、job、mgr from emp) AND enameはNULLではありません; – john179

+0

はい、あなたのSQLは引用符が無効です!私は 'where'句を意味し、クエリ全体ではありません。あなたは 'where'節を持っていないので、' ename IS NOT NULL'を選択するだけです。 –

0

列が異なるタイプの場合は、例えば、それらのいくつかをキャストする必要があるかもしれません

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

をお試しくださいcol1ではなくTO_CHAR(col1)です。

関連する問題