2014-04-30 38 views
0

這個問題的主題可能與我的疑問無關。Oracle數據庫視圖顯示列數值到文本的相對值

我試圖創建從Db的表,其中在塔的一個I具有值1,2,3這實際上表示1 =請求,2 =響應和3 =錯誤讀取值的圖。

我將用這一觀點的報告,所以在報告中,我不想顯示數字小值,地質儲量這些,我應該得到的請求,響應或錯誤。

請你幫我,我怎麼可以創建一個視圖這樣做..提前

感謝,因爲我沒有太多熟悉的數據庫查詢。

+0

'CREATE VIEW等等AS SELECT CASE WHEN COL = 1,則 '請求' WHEN列= 2 THEN '響應' WHEN列= 3,那麼 '錯誤' END FROM table' – Mihai

+1

你確定沒有與表那些描述?硬編碼值和描述可以是一個痛苦時,這些值的變化 – tilley31

+0

謝謝,我想通過你的建議起草我的查詢,但由於某種原因,它不工作。我有一些其他colums也是我需要與此列中顯示沿......但這些都是正常的選擇one..could請您發表與上述要求查詢一起顯示多列的查詢 – kumarb

回答

2

以下是使用CASE語句的示例。

WITH test_data 
    AS (SELECT 1 v1 FROM DUAL 
     UNION 
     SELECT 2 v1 FROM DUAL 
     UNION 
     SELECT 3 v1 FROM DUAL) 
SELECT CASE v1 
      WHEN 1 THEN 'request' 
      WHEN 2 THEN 'response' 
      WHEN 3 THEN 'error' 
     END 
    FROM test_data 

所以景色看起來像:

CREATE VIEW MyView AS 
SELECT CASE v1 
       WHEN 1 THEN 'request' 
       WHEN 2 THEN 'response' 
       WHEN 3 THEN 'error' 
      END 
     FROM test_data; -- etc. 

不過,我認爲不是這樣的做法,你應該創建一個單獨的查詢/連接表的內在價值和之間的映射用戶價值。當你需要爲代碼#4添加一個案例時會發生什麼?你不想每次修改你的查詢。長期考慮。

相關問題