首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建一个SQL列,其值依赖于(映射到)现有查阅列的值?

如何创建一个SQL列,其值依赖于(映射到)现有查阅列的值?
EN

Stack Overflow用户
提问于 2019-10-12 19:46:48
回答 1查看 35关注 0票数 1

我的问题的一个简化版本是:假设我已经有一个关于行人夹克颜色的列,它非常具体,包括(金丝雀、金色、蒲公英、黄色、柠檬汁、天蓝色、浅蓝色、天蓝色等)。我想创建两个新的列:"Color Group“和" light -Dark”,这样我就可以将颜色组下的所有黄色夹克都标记为黄色,并将它们全部归类为浅色。

请注意,我在一个数据库产品中工作,所有数据都存储在数据库中,我不能在实际数据库中创建新数据。但在报告模块中,我可以基于现有列创建列。这些数据将只存在于报告中,而不存在于数据库中。此外,它的设置方式我不需要SELECT命令,这是默认发生的,但请随意将它放在您的响应中,它不会让我感到困惑。我试过了:

如果customer_jacket_color =“蒲公英”,则“黄色”

我也试过用WHEN代替"if“

when customer_jacket_color_group =‘黄色’然后是‘轻’

我的预期结果将采用1列颜色,并根据我将原始值映射到新列的方式给出描述颜色的3列。蒲公英,黄色,浅海军蓝,蓝色,深色薄荷,绿色,浅色。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-12 19:49:20

我想你需要一个case表达式:

代码语言:javascript
运行
复制
select t.*,
       (case when customer_jacket_color = 'dandelion' then 'Yellow'
             when customer_jacket_color = 'sky blue' then 'Blue'
             . . .
        end) as color_group,
       (case when customer_jacket_color = 'dandelion' then 'light'
             when customer_jacket_color = 'sky blue' then 'dark'
             . . .
        end) as light_dark
from t;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58353819

复制
相关文章

相似问题

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