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里写法
展开
 我来答
匿名用户
推荐于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
希望可以帮到你
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wgp701
2013-03-19 · TA获得超过380个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:230万
展开全部
ibatis只能是标准的sql语句。你这个是不行的。
追问
事实证明  可以大量使用case when语句······
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mxyue0208
2013-03-20 · TA获得超过417个赞
知道小有建树答主
回答量:348
采纳率:0%
帮助的人:122万
展开全部
用<![CDATA[]]>包住!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式