我有一个数据库CarSharing,其中包含表CarSharing。
create_table = '''CREATE TABLE CarSharing (
Id INTEGER,
Timestamp DATETIME,
Season TEXT,
Holiday TEXT,
Working_Day TEXT,
Weather TEXT,
Temp DECIMAL,
Temp_Feel DECIMAL,
Humidity INTEGER,
Windspeed DECIMAL,
Demand DECIMAL
); '
我已经修改了这个表,使其包含一个名为temp_category的新列:
addcolumn = "ALTER TABLE CarSharing ADD COLUMN temp_category varchar(10)"
现在我需要根据Temp_Feel列中的值为temp_category列添加字符串值,这样当Temp_Feel小于10时,temp_category列中的值为“冷”,如果在10-25之间,则为“温和”,如果大于25,则为“热”。
我在网上看过一些类似情况的例子,但似乎找不到一个符合这一点的。
columndata = "update CarSharing set temp_category = Case Temp_Feel WHEN 10> THEN 'Cold', WHEN 10<= 25>= THEN 'Mild', WHEN 25< THEN 'Hot'"
cur.execute(columndata)
我有一种感觉,我需要使用类似的东西,但我似乎不能得到正确的格式。
2条答案
按热度按时间r8xiu3jd1#
对
CASE
表达式使用正确的语法:或者:
4zcjmb1e2#
另一种方法是添加一个自动计算值的generated column:
†计算列可以是
STORED
,表示在插入或更新记录时将值写入数据库,也可以是VIRTUAL
,表示在查询表时计算值。ALTER TABLE / ADD COLUMN
只支持添加VIRTUAL
列。