我想根据以下条件向新列添加值:如果 board_stage 小于 alight_stage 则 service_direction 等于 1,表示入站;如果不是,则 service_direction 等于 0,表示 Outbound。
我尝试过的代码如下。主要问题是它在 CASE 语句之前不断返回语法错误。我也玩过 WHERE 和 IF 语句。但是,这会在相同位置返回相同的语法错误,即就在条件语句之前。
有小费吗?非常感谢
ALTER TABLE smartcardtable
ADD service_direction boolean;
UPDATE smartcardtable
SET service_direction
CASE board_stage < alight_stage THEN service_direction = '1'
ELSE '0' END;
大小写语法不正确,数据类型为布尔值,因此必须将其设置为 True 或 False
db<>在这里摆弄
正确的语法是:
其他小的改进:
CASE WHEN <boolean_expression> ...
在你的情况下:
如果另外两列 (
board_stage
和alight_stage
) 不可为空,则可以用更简单的布尔表达式替换 case 表达式(括号仅为了清楚起见):