繁体   English   中英

db2存储过程(如果有)变量比较

[英]db2 stored procedure if else variable comparison

我正在尝试使用like比较db 2 sp中的变量,但是它总是转到语句的else部分,有人可以在这里更正语法。这是代码的一部分

do
  IF(@variable like '%abc') THEN
set @anotherVariable='abc';
  ELSEIF (@variable like '%def') THEN
set @anotherVariable='def';
  ELSEIF (@variable like '%def') THEN
set @anotherVariable='def';
  ELSE
set @anotherVariable='xyz';
  END IF;
END FOR;

这段代码是游标的一部分,查询总是返回1值,但是我的比较不起作用(语法不正确?),它总是进行到最后一个,好像它永远无法匹配。 我知道价值存在,但无法以这种方式进行比较...谢谢

您正在编写SQL-PL代码吗? 因为变量直接由其名称引用,而不以“ @”符号开头。

另一件事是您在查询外部使用了like运算符。 “赞”不是一个函数,它是一个谓词: http : //pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0000751 .html

相反,您可以在选择中使用“ case”,然后返回相应的值。 这样,您无需执行“ if-else”操作: http : //pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/ doc / r0023458.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM