【问题标题】: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
        

        【讨论】:

        • 我无法更改或添加表格。
        猜你喜欢
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多