天天看点

SQL中case语句的执行

informix的sql中,无论case语句是在普通查询语句中还是在存储过程中,执行情况基本一致。通常情况下条件只符合一条当然没有疑问。就以下两种情况尤其是第一种情况需要注意。

1、在满足条件的when子句存在多条的情况下,仅第一条有效,后面的都不执行;

2、在存储过程的case语句中中如果没有when只有else,则直接执行else后的语句。当然这样的情况最好避免。

可以理解为case就是执行满足条件的第一条语句后就跳出case语句。

另外存储过程中case后变量值只计算一次,也就是说即使case语句中改变了变量值是不会影响后面的判断的。