选择值可以为null的位置或触发器中的实际值

时间:2014-05-21 15:09:03

标签: select sqlite null case

例如

TypeID = Select ID
         From Types
         Where Type = new.Type

new.Type可以是一个值,也可能是null,目前如果它为null,则不会找到匹配,否则就是。

我试过

TypeID = Select ID
         From Types
         Where
              CASE
                  When new.Type is null Then Type Is Null
                  When new.Type is Not Null Then Type = new.Type
              END 

但它在CASE附近给出了语法错误。

我以为我能做到

TypeID = Select ID
         From Types
         Where Type = new.Type OR Type IS Null

但是这会在少数情况下返回不需要的结果,例如当new.Type不在Types表中时我希望它返回错误并且不返回Null的ID。

1 个答案:

答案 0 :(得分:0)

在SQLite中,IS运算符也可以比较' normal'值,所以只需写:

TypeID = Select ID
         From Types
         Where Type IS new.Type