2016-06-23 18 views
2

SQLテーブルから一連の項目番号を取得するための簡単なSELECTクエリを作成しています。SQL数値を単語に変換する

今、このテーブルから、3つのうちの1つになるアイテムタイプを取得したいと思います。 Make, Buy or undefined

私の問題は、これがデータベースの番号で示されていることです。テーブルにITMTYPEという列がありますが、1 or 2 or 3 for Make, Buy or undefinedと表示されています。

アイテムタイプに対応する言葉を表示できる選択クエリに列を追加する方法は誰にも教えてください。

Below IS what i'd likeへsee、

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

この第三column IS what i'd likeへsee。 おかげ

+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 
関連する問題