ibatis与sql语句的转换
CASEWHENb.mo_number+b.mt_number=0THEN'---'ELSEto_char(round((a.mo_number+a.mt_number-...
CASE WHEN b.mo_number+b.mt_number=0 THEN '---'
ELSE to_char(round((a.mo_number+a.mt_number-b.mo_number-b.mt_number)/(b.mo_number+b.mt_number),4)*100)||'%'
END flow_rate_of_change
我这句话在数据库里用好使 但是放到ibatis里的xml中就不好使了~求正确的xml里写法 展开
ELSE to_char(round((a.mo_number+a.mt_number-b.mo_number-b.mt_number)/(b.mo_number+b.mt_number),4)*100)||'%'
END flow_rate_of_change
我这句话在数据库里用好使 但是放到ibatis里的xml中就不好使了~求正确的xml里写法 展开
推荐于2016-04-27
展开全部
在ibatis 中,SQL语句经常会出现一些特殊符号,比如:> < 等符号,在xml中会被转义,解析时会出错
这样可以使用 <![CDATA[ SQL内容 ]]> 进行常量标识,这样里面的SQL内容会以文本的形式存在 ,不会被解析
如:
<![CDATA[
select CASE
WHEN b.mo_number + b.mt_number = 0 THEN
'---'
ELSE
to_char(round((a.mo_number + a.mt_number - b.mo_number -
b.mt_number) / (b.mo_number + b.mt_number),
4) * 100) || '%'
END flow_rate_of_change
from dual;
]]>
另外,还有ibatis 中:> 可以表示大于号,< 表示小于号
如: where score > 90 表示:where score > 90
希望可以帮到你
这样可以使用 <![CDATA[ SQL内容 ]]> 进行常量标识,这样里面的SQL内容会以文本的形式存在 ,不会被解析
如:
<![CDATA[
select CASE
WHEN b.mo_number + b.mt_number = 0 THEN
'---'
ELSE
to_char(round((a.mo_number + a.mt_number - b.mo_number -
b.mt_number) / (b.mo_number + b.mt_number),
4) * 100) || '%'
END flow_rate_of_change
from dual;
]]>
另外,还有ibatis 中:> 可以表示大于号,< 表示小于号
如: where score > 90 表示:where score > 90
希望可以帮到你
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ibatis只能是标准的sql语句。你这个是不行的。
追问
事实证明 可以大量使用case when语句······
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用<![CDATA[]]>包住!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询