4

ページにレポート領域があり、studentsテーブルからデータを取得しています。そのテーブル内に、cv_lodged「はい」または「いいえ」を表す1または0のいずれかであるという列があります。レポートでは、この列のデータが0または1として表示され、「はい」または「いいえ」を表示するように変更します。

これどうやってするの?

4

3 に答える 3

6

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
于 2012-11-26T20:46:40.750 に答える
0

私は通常、YES1_NO0という名前の静的LOVを作成し、2つのエントリを作成しました:'はい'->1、'いいえ'->0
。インタラクティブレポートでは、これらの列を変更できます。これを行うには、IRの列を編集します。「表示タイプ」を「テキストとして表示(LOVに基づいて、特殊文字をエスケープ)」に変更します。次に、[値の一覧]で[列のフィルターの種類]を[名前付きの値の一覧を使用して完全一致をフィルター処理する]に設定し、名前付きのLOVを選択します。
しかし確かに、これはSQLで完全に行うことができます。

于 2012-11-26T22:04:52.623 に答える
0

現在、これを行うためのより簡単な方法があります。

まず、開発者として「はい/いいえ」の項目を含むAPEXページを開き、項目をクリックしてページ項目の設定を開きます。

設定値をからUse component settingsに変更しCustomます。

その後、Yes Valueto1No Valuetoをに変更し0ます。

ここに画像の説明を入力してください

このソリューションにはいくつかの利点があります。

  1. 値1または0をYまたはN()またはにデコードする必要はありませんselect decode(mycolumn, 1, 'Y', 'N') from mytable where id = 123;select case when ...
  2. 送信された値をYまたはNから1または0にデコードする必要はありません
于 2014-10-24T14:41:25.573 に答える