2016-06-23 97 views
2

我在寫一個簡單的SELECT查詢以從SQL表中檢索一組項目編號。SQL將數字轉換爲單詞

現在從這張表中,我想要得到Item類型,它可以是三種之一。 Make, Buy or undefined

我的問題是,這是在數據庫中的數字表示。我的表格有一個名爲ITMTYPE的列,但是表示1 or 2 or 3 for Make, Buy or undefined

任何人都可以告訴我一種方法來添加一列到我的選擇查詢,可以顯示項目類型的等效措辭嗎?

下面是我想看到的東西,

Item_Number Item_Type_Num Item Type_val 
A    1    Make 
B    2    Buy 
C    3    Undefined 
D    2    Buy 
E    1    Make 

這第三列是我想看到的。 感謝

+0

是ITMTYPE外鍵?如果不是,那麼最簡單的方法就是添加一個case語句 – Chris

回答

1

使用簡單的案例表達。

select 
    Item_Number, 
    Item_Type_Num , 
    Case Item_Type_Num 
     when 1 then 'Make' 
     when 2 then 'Buy' 
     when 3 then 'Undefined' 
    else 'Unknown' 
    end as 'Item_type_val' 
from Yourtable 
3

您可以使用CASE EXPRESSION

SELECT t.Item_Number,t.ITMTYPE as Item_Type_Num, 
     CASE WHEN t.ITMTYPE = 1 THEN 'Make' 
      WHEN t.ITMTYPE = 2 THEN 'Buy' 
      WHEN t.ITMTYPE = 3 THEN 'undefined' 
     END as Item_Type_Val 
FROM YourTable t 

如果你有日常需求本專欄中,我會建議你把它添加到表:

ALTER TABLE YourTable 
    ADD Item_Val_Type VARCHAR2(10); 

,然後更新它:

UPDATE YourTable t 
SET t.Item_Val_Type = CASE WHEN t.ITMTYPE = 1 THEN 'Make' 
          WHEN t.ITMTYPE = 2 THEN 'Buy' 
          WHEN t.ITMTYPE = 3 THEN 'undefined' 
         END; 
+0

如果您要添加一個額外的列,SQL Server會計算列 - 永遠不會不一致! (或者改爲創建一個視圖。) – jarlh

0
CASE expression 

    WHEN value_1 THEN result_1 
    WHEN value_2 THEN result_2 
    ... 
    WHEN value_n THEN result_n 

    ELSE result 

END 

select item_number 
,case Item_Type_num 
    when 1 then 'Make' 
    when 2 then 'Buy' 
    else 'Undefined 
end