informix的sql中,无论case语句是在普通查询语句中还是在存储过程中,执行情况基本一致。通常情况下条件只符合一条当然没有疑问。就以下两种情况尤其是第一种情况需要注意。
1、在满足条件的when子句存在多条的情况下,仅第一条有效,后面的都不执行;
2、在存储过程的case语句中中如果没有when只有else,则直接执行else后的语句。当然这样的情况最好避免。
可以理解为case就是执行满足条件的第一条语句后就跳出case语句。
另外存储过程中case后变量值只计算一次,也就是说即使case语句中改变了变量值是不会影响后面的判断的。