日期:2014-05-16  浏览次数:21060 次

这个SQL语句中if end这种写法是什么意思
select sku.ID as ID
from sku, rule
where rule.status = 1 and rule.type = 3
#if(${channelId})
and rule.channelId = ${channelId} 
#end
and rule.ID = sku.ID 
#if(${refLogic})
and rule.refLogic= ${refLogic} 
#end
and sku.cycleStatus<> 0

有这样一个语句,不知道#if #end $(channelId)这各写法是什么意思?请高手指点!!!!

------解决方案--------------------
你这个不是纯 SQL,是 shell 脚本拼接 sql 的吧
这个意思就是 如果 ${变量名} 不为空,就加一个条件
------解决方案--------------------
条件编译。
------解决方案--------------------
if end 正常意思是结束你前面的条件控制块,也就是if...else...end 的过程.
------解决方案--------------------
作用类似做报表时候,在SQL条件最后加上一个&LP_ORG_ID,实际上是一个字符串的拼凑,然后通过判断语句然后赋值给这个LP_ORG_ID从而实现对查询语句一些查询条件的筛选过滤吧。