sqlite 基于现有列的值更新新列

hs1ihplo  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(184)

我的数据库名为‘LiquorSales’,其中包含来自爱荷华州的酒类销售信息。我正在使用SQLiteStudio。
其中一列名为‘ategory’,它包含一个7位数字(数据类型为int),其中我注意到了一个模式。
以1010000(即1010000-1019999)开头的数字都是威士忌产品。
以1020000开头的数字(例如1020000-1029999)都是龙舌兰酒/梅兹卡尔酒的产品。
号码1030000-1039999是伏特加产品。
号码1040000-1049999是杜松子酒产品。

我想创建一个名为‘alchoholytype’的新列,它可以读取‘ategory’中的值,然后用威士忌或伏特加等填充‘alchoholytype’。
我已经继续并添加了新的列,名为SOLINE_TYPE。
这就是我计划运行的

UPDATE liquorsales
    SET alchohol_type (case 
        when category > 1009999 AND < 1020000 then 'Whiskey'
        when category > 1019999 AND < 1030000 then 'Tequlia/Mezcal'
        when category > 1029999 AND < 1040000 then 'Vodka'
        when category > 1039999 AND < 1050000 then 'Gin'
        when category > 1049999 AND < 1060000 then 'Brandy'
        when category > 1059999 AND < 1070000 then 'Rum'
      else 'Other (Spirits, Liqueurs, Cocktails)'

end);

我还没能用表的一个小样本大小成功地运行它。有什么建议吗?

yzuktlbb

yzuktlbb1#

UPDATE liquorsales
   SET alchohol_type =
       CASE WHEN category >= 1070000
            THEN 'Other (Spirits, Liqueurs, Cocktails)'
            WHEN category >= 1060000
            THEN 'Rum'
            WHEN category >= 1050000
            THEN 'Brandy'
            WHEN category >= 1040000
            THEN 'Gin'
            WHEN category >= 1030000
            THEN 'Vodka'
            WHEN category >= 1020000
            THEN 'Tequlia/Mezcal'
            WHEN category >= 1010000
            THEN 'Whiskey'
            ELSE 'Other (Spirits, Liqueurs, Cocktails)'
        END

相关问题