首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从行中读取数据并打印相应的列名。

从行中读取数据并打印相应的列名。
EN

Stack Overflow用户
提问于 2022-02-15 14:36:59
回答 1查看 72关注 0票数 0

我在SQL server中创建了下面的表:

代码语言:javascript
复制
snapshot_year   snapshot_month  date    customer        active  inactive    old new low high    hard    soft    neutral
2020    2020-12 2020-12 1000216     1   null    null    null    null    null    null    null    null
2021    2021-12 2021-12 1000216     1   null    null    null    null    null    null    null    null
2020    2020-05 2020-05 1000216     null    null    null    null    null    null    1   null    null
2022    2022-01 2022-01 1000216     1   null    null    null    null    null    null    null    null
2020    2020-06 2020-06 1000216     null    null    null    null    null    null    1   null    null
2020    2020-10 2020-10 1000216     null    1   null    null    null    null    null    null    null
2020    2020-09 2020-09 1000216     null    null    1   null    null    null    null    null    null
2021    2021-05 2021-05 1000216     1   null    null    null    null    null    null    null    null
2021    2021-04 2021-04 1000216     1   null    null    null    null    null    null    null    null
2021    2021-08 2021-08 1000216     null    null    null    1   null    null    null    null    null

我的要求是,在每一行中,它必须读取包含1的列,并添加一个名为“段”的新列,其特定列名如下:

代码语言:javascript
复制
snapshot_year   snapshot_month  date    customer    Segment active  inactive    old new low high    hard    soft    neutral
2020    2020-12 2020-12 1000216 active  1   null    null    null    null    null    null    null    null
2021    2021-12 2021-12 1000216 active  1   null    null    null    null    null    null    null    null
2020    2020-05 2020-05 1000216 hard    null    null    null    null    null    null    1   null    null
2022    2022-01 2022-01 1000216 active  1   null    null    null    null    null    null    null    null
2020    2020-06 2020-06 1000216 hard    null    null    null    null    null    null    1   null    null
2020    2020-10 2020-10 1000216 inactive    null    1   null    null    null    null    null    null    null
2020    2020-09 2020-09 1000216 old null    null    1   null    null    null    null    null    null
2021    2021-05 2021-05 1000216 active  1   null    null    null    null    null    null    null    null
2021    2021-04 2021-04 1000216 active  1   null    null    null    null    null    null    null    null
2021    2021-08 2021-08 1000216 new null    null    null    1   null    null    null    null    null

我完全搞不懂该怎么做,帮个忙就好了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-15 14:56:41

如果我正确理解,您可以尝试使用CASE WHEN表达式。

如果该值是您希望显示的值,则创建条件判断列。

代码语言:javascript
复制
SELECT *,
       CASE WHEN active = 1 THEN 'active' 
            WHEN inactive = 1 THEN 'inactive'  
            WHEN old = 1 THEN 'old' 
            WHEN new = 1 THEN 'new' 
            WHEN low = 1 THEN 'low'
            WHEN high = 1 THEN 'high'
            WHEN hard = 1 THEN 'hard'
            WHEN soft = 1 THEN 'soft'
            WHEN neutral = 1 THEN 'neutral' END Segment
FROM T
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71128307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档