将Oracle SQL与ibatis一起使用,可以返回大量类似计算的数据

时间:2014-03-28 20:07:31

标签: sql oracle ibatis

我有一个返回一行有大量列的查询。我的查询的顶部看起来像这样:

sum(CASE WHEN status = 'hello' THEN begin ELSE 0 END) hello_begin,
sum(CASE WHEN status = 'hello' THEN middle ELSE 0 END) hello_middle,
sum(CASE WHEN status = 'hello' THEN end ELSE 0 END) hello_end,

sum(CASE WHEN status = 'smile' THEN begin ELSE 0 END) smile_begin,
sum(CASE WHEN status = 'smile' THEN middle ELSE 0 END) smile_middle,
sum(CASE WHEN status = 'smile' THEN end ELSE 0 END) smile_end,

...

...我有10种不同的状态,所以这是30列。我只能写30条陈述。但有没有一种聪明的方法来压缩这个,这样我就不会做出一些愚蠢的复制和粘贴错误?

我在iBatis中这样做并将其返回到一个映射对象,在那里我开始一个非常繁琐且不可扩展的转换,就像地图地图一样。理想的解决方案是跳过必须在Java中执行此操作。

0 个答案:

没有答案