将mysql表中的两列组合起来,创建一个具有特定字符串的新列

zz2j4svz  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(224)

我的表中有以下列:

launch_month    Years   
Jun             2018    
July            2018    
Aug             2018

我想创建一个名为'launch\u id'的新列,并将其他两列组合成一个字符串'201806',因此上面的内容如下所示:

launch_month    Years   launch_id
Jun             2018    201806
July            2018    201807
Aug             2018    201808

有人能帮忙吗?

3lxsmp7m

3lxsmp7m1#

一个选项使用 case 表达式:

select
    launch_month,
    years,
    years * 100 + case launch_month
        when 'Jan' then  1
        when 'Feb' then  2
        when 'Mar' then  3
        ...
        when 'Dec' then 12
    end launch_id
from mytable

这将生成一个名为 launch_id ,以格式表示日期 YYYYMM .
或者,您可以使用日期函数(但这可能效率较低):

select 
    launch_month,
    years,
    date_format(
        str_to_date(concat('01', launch_month, years), '%d%b%Y'),
        '%Y%m'
    ) launch_id
from mytable

这将生成一个字符串结果。如果你想要一个数字,你可以直接转换它,或者显式地( cast() )或者含蓄地( + 0 ).

相关问题