这个SQL语句中if end这种写法是什么意思

时间:2022-04-16 20:18:43
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)这各写法是什么意思?请高手指点!!!!

9 个解决方案

#1


还有这样写的呢,我也没见过,是别的什么语法里面的吧,看起来像在组织SQL

#2


你这个不是纯 SQL,是 shell 脚本拼接 sql 的吧
这个意思就是 如果 ${变量名} 不为空,就加一个条件

#3


条件编译。

#4


这个是在velocity的java模板中写的

#5


if end 正常意思是结束你前面的条件控制块,也就是if...else...end 的过程.

#6


我明白 了,这是模板中一些语法!!!

#7


LZ明白就好。

#8


作用类似做报表时候,在SQL条件最后加上一个&LP_ORG_ID,实际上是一个字符串的拼凑,然后通过判断语句然后赋值给这个LP_ORG_ID从而实现对查询语句一些查询条件的筛选过滤吧。

#9


谢谢各位了!!!!

#1


还有这样写的呢,我也没见过,是别的什么语法里面的吧,看起来像在组织SQL

#2


你这个不是纯 SQL,是 shell 脚本拼接 sql 的吧
这个意思就是 如果 ${变量名} 不为空,就加一个条件

#3


条件编译。

#4


这个是在velocity的java模板中写的

#5


if end 正常意思是结束你前面的条件控制块,也就是if...else...end 的过程.

#6


我明白 了,这是模板中一些语法!!!

#7


LZ明白就好。

#8


作用类似做报表时候,在SQL条件最后加上一个&LP_ORG_ID,实际上是一个字符串的拼凑,然后通过判断语句然后赋值给这个LP_ORG_ID从而实现对查询语句一些查询条件的筛选过滤吧。

#9


谢谢各位了!!!!