【问题标题】:case compare to number and give out name案例比较数字并给出名称
【发布时间】:2013-04-09 07:41:21
【问题描述】:
我遇到的问题是我有一个名为 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
我不想只在打印输出中更改表格中的值。
知道我该怎么做吗?
提前感谢您的所有帮助
【问题讨论】:
标签:
sql
database
select
case
【解决方案1】:
删除多余的情况,
SELECT CASE WHEN t.cate = 1 THEN 'STONE'
WHEN t.cate = 2 THEN 'TREE'
ELSE null
END AS test
FROM dbt.tbl t
【解决方案2】:
或者,你可以写
SELECT
CASE t.cate
WHEN 1 THEN 'STONE'
WHEN 2 THEN 'TREE'
ELSE NULL
END AS test
FROM dbt.tbl t
【解决方案3】:
如果列表将来可能会发生变化(通过编辑或添加),我会将其作为单独的表格进行:
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