Sql 将案例与编号进行比较并给出名称

Sql 将案例与编号进行比较并给出名称,sql,database,select,case,Sql,Database,Select,Case,我遇到的问题是,我有一个名为cate的列,编号为1到5,但我希望打印出别名。 例如,如果列在结果集中有数字1我想要石头,如果是2我想要“树” 我应该看起来像 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 我不想仅在打印输出中更改表中的值 你知道我怎样才能做到吗

我遇到的问题是,我有一个名为cate的列,编号为1到5,但我希望打印出别名。 例如,如果列在结果集中有数字1我想要石头,如果是2我想要“树”

我应该看起来像

    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
我不想仅在打印输出中更改表中的值

你知道我怎样才能做到吗

提前感谢您的帮助

移除多余的箱子

SELECT  CASE WHEN t.cate = 1 THEN 'STONE'
             WHEN t.cate = 2 THEN 'TREE'
             ELSE null 
         END AS test 
FROM    dbt.tbl t

如果列表将来可能会更改(通过编辑或添加),我会将其作为一个单独的表:

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

或者,你可以写

SELECT
  CASE t.cate
    WHEN 1 THEN 'STONE'
    WHEN 2 THEN 'TREE'
    ELSE NULL
  END AS test
FROM dbt.tbl t

我不能更改或添加表格。