ページにレポート領域があり、students
テーブルからデータを取得しています。そのテーブル内に、cv_lodged
「はい」または「いいえ」を表す1または0のいずれかであるという列があります。レポートでは、この列のデータが0または1として表示され、「はい」または「いいえ」を表示するように変更します。
これどうやってするの?
ページにレポート領域があり、students
テーブルからデータを取得しています。そのテーブル内に、cv_lodged
「はい」または「いいえ」を表す1または0のいずれかであるという列があります。レポートでは、この列のデータが0または1として表示され、「はい」または「いいえ」を表示するように変更します。
これどうやってするの?
CASE
クエリにステートメントを入れることができます
SELECT (CASE WHEN cv_lodged = 1
THEN 'Yes'
ELSE 'No'
END) cv_lodged,
other_columns
FROM students
これが一般的である可能性が高い場合は、疑似ブールデータを文字列に変換する関数を作成する方が適切な場合があります。何かのようなもの
CREATE FUNCTION my_bool_to_str( p_num IN NUMBER )
RETURN VARCHAR2
IS
BEGIN
IF( p_num = 1 )
THEN
RETURN 'Yes';
ELSE
RETURN 'No';
END IF;
END;
クエリで呼び出すこと
SELECT my_bool_to_str( cv_lodged ) cv_lodged,
other_columns
FROM students
私は通常、YES1_NO0という名前の静的LOVを作成し、2つのエントリを作成しました:'はい'->1、'いいえ'->0
。インタラクティブレポートでは、これらの列を変更できます。これを行うには、IRの列を編集します。「表示タイプ」を「テキストとして表示(LOVに基づいて、特殊文字をエスケープ)」に変更します。次に、[値の一覧]で[列のフィルターの種類]を[名前付きの値の一覧を使用して完全一致をフィルター処理する]に設定し、名前付きのLOVを選択します。
しかし確かに、これはSQLで完全に行うことができます。
現在、これを行うためのより簡単な方法があります。
まず、開発者として「はい/いいえ」の項目を含むAPEXページを開き、項目をクリックしてページ項目の設定を開きます。
設定値をからUse component settings
に変更しCustom
ます。
その後、Yes Value
to1
とNo Value
toをに変更し0
ます。
このソリューションにはいくつかの利点があります。
select decode(mycolumn, 1, 'Y', 'N') from mytable where id = 123;
select case when ...