我的问题的一个简化版本是:假设我已经有一个关于行人夹克颜色的列,它非常具体,包括(金丝雀、金色、蒲公英、黄色、柠檬汁、天蓝色、浅蓝色、天蓝色等)。我想创建两个新的列:"Color Group“和" light -Dark”,这样我就可以将颜色组下的所有黄色夹克都标记为黄色,并将它们全部归类为浅色。
请注意,我在一个数据库产品中工作,所有数据都存储在数据库中,我不能在实际数据库中创建新数据。但在报告模块中,我可以基于现有列创建列。这些数据将只存在于报告中,而不存在于数据库中。此外,它的设置方式我不需要SELECT命令,这是默认发生的,但请随意将它放在您的响应中,它不会让我感到困惑。我试过了:
如果customer_jacket_color =“蒲公英”,则“黄色”
我也试过用WHEN代替"if“
when customer_jacket_color_group =‘黄色’然后是‘轻’
我的预期结果将采用1列颜色,并根据我将原始值映射到新列的方式给出描述颜色的3列。蒲公英,黄色,浅海军蓝,蓝色,深色薄荷,绿色,浅色。
发布于 2019-10-12 19:49:20
我想你需要一个case
表达式:
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;
https://stackoverflow.com/questions/58353819
复制相似问题