首页 > 解决方案 > Informix 12.1 如何根据 case 子句中的条件选择条件

问题描述

| 在这样的过程中有一个查询:

{
 table1
column1 column2 column3 column4 
a        a       x        1      
b        b       y        4      
c        c       y        4      
d        c       y        4      
}

CREATE PROCEDURE PROCEDURE1(input1 smallint)

insert into table1
select 
  column1,column2,column3,column4
From
 Table1
WHERE
 column1 not in ('a','b') 
AND
 CASE 
  WHEN input1=1 THEN  "column2 in ('a' ,'b')" --lead to syntax error and with quote, i.e. :  "column2 in (a ,b)" lead to boolean expression error  
  WHEN input1=2 THEN  "column3 in ('x' ,'y')" 
  ELSE                 "column4 not in ('1' ,'2')" 
END;
END PROCEDURE;

如果使用 quote 输入 Case 子句中的 Condition 字符串,我会收到此错误:

"Result of a boolean expression is not of boolean type"

如果我从 in Case 子句中的条件字符串中删除引号,我会收到语法错误。

有人可以帮忙吗?

(使用 PREPARE 语句有这个问题

标签: stored-proceduresinformix

解决方案



推荐阅读