1

我遇到的问题是我有一个名为 cate 的列,其数字为 1 到 5,但我想要打印输出中的别名。例如,如果该列的数字为 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 回答