1

私が抱えている問題は、1 から 5 までの数字を持つ cate という列があることですが、出力にエイリアス名が必要です。たとえば、列の番号が 1 の場合、結果セットに STONE が必要であり、2 の場合は「TREE」が必要です。

私は次のように見えるはずです

    Select
    case when t.cate = 1 then t.cate="STONE"
    case when t.cate = 2 then t.cate="TREE"
    else null end as test from dbt.tbl t

テーブルの値を変更したくないのは、印刷だけです。

どうすればそれが機能するのか考えていますか?

事前にご協力いただきありがとうございます

4

3 に答える 3

1

余分なケースを取り外し、

SELECT  CASE WHEN t.cate = 1 THEN 'STONE'
             WHEN t.cate = 2 THEN 'TREE'
             ELSE null 
         END AS test 
FROM    dbt.tbl t
于 2013-04-09T07:42:37.410 に答える
1

または、次のように書くこともできます

SELECT
  CASE t.cate
    WHEN 1 THEN 'STONE'
    WHEN 2 THEN 'TREE'
    ELSE NULL
  END AS test
FROM dbt.tbl t
于 2013-04-09T07:56:13.963 に答える
0

リストが将来 (編集または追加によって) 変更される可能性がある場合は、別の表として作成します。

INSERT INTO Cates (Cate,Description) VALUES
(1,'Stone'),
(2,'Tree') --Etc

そして、次のようにします。

SELECT c.Description as Test
FROM dbt.tbl t inner join Cates c on t.Cate = c.Cate
于 2013-04-09T07:47:41.703 に答える