在sqlite中,如何有条件地将列更新为null

时间:2015-07-14 04:48:16

标签: sqlite sql-update

在Sqlite中,如果值的长度为0,则如何将varchar列更新为null,否则为值。

换句话说,就像这样,使用类似C的语法:

update T set C = (value.length() == 0 ? null : value) where ...;

感谢。

1 个答案:

答案 0 :(得分:2)

如果表模式已定义为允许列中的空值,则以下查询应生成您要查找的结果

UPDATE T
SET ColumnNameX = null
WHERE LENGTH(ColumnNameX) = 0

这可以使用触发器强制执行。

CREATE TRIGGER TNullTrigger
AFTER INSERT ON T 
FOR EACH ROW
BEGIN
  UPDATE T
  SET ColumnNameX = null
  WHERE LENGTH(ColumnNameX) = 0
END;