2012-11-26 46 views

回答

4

你可以把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 
0

我通常只是在共享組件創建靜態LOV叫YES1_NO0,有2項:「是」 - > 1「否' - > 0.
在交互式報告中,您可以更改這些列。爲此,請編輯IR的列。將「顯示類型」更改爲「顯示爲文本(基於LOV,轉義特殊字符)」。然後在「值列表」下將「列過濾器類型」設置爲「使用命名的值列表過濾完全匹配」並選擇命名的LOV。
但是當然,你完全可以在SQL中做到這一點。

0

目前,有一個更簡單的方法來做到這一點。

首先打開APEX頁面,選擇「Yes/No」項目作爲開發人員,然後單擊該項目以打開頁面項目設置。

更改設置值從Use component settingsCustom

之後將Yes Value更改爲1No Value0

enter image description here

該解決方案具有一些優點:

  1. 無需解碼值1或0到Y或N(select decode(mycolumn, 1, 'Y', 'N') from mytable where id = 123;)或select case when ...
  2. 無需解碼從Y或N提交的值返回1或0
相關問題