在Sybase IQ中如果是多重排序就要注意一下,要用以下格式:select * from table_name order by name desc, age desc
也就是每个字段都要标明是升序还是降序
前几天碰到一个复杂一点的,需要判断排序的字段是否为null,分母是否为0,并且要转化为float型以便于排序
这个是在ibatis里面写的:
听说这种写法效率不高,可我暂时没有想到更好的,希望各位大大能提出更好的建议
也就是每个字段都要标明是升序还是降序
前几天碰到一个复杂一点的,需要判断排序的字段是否为null,分母是否为0,并且要转化为float型以便于排序
这个是在ibatis里面写的:
<![CDATA[
select top #userCount# a.* from tbl_call_drop a
where a.startDate>=#startDateFormat# and a.endDate<=#endDateFormat#
order by
cast(isnull(a.calling_drop,0)+isnull(a.called_drop,0) as float)
/(case (isnull(a.calling_answer,0)+isnull(a.called_answer,0))
when 0 then 65535
else isnull(a.calling_answer,0)+isnull(a.called_answer,0)
end) desc,
(isnull(a.calling_answer,0)+isnull(a.called_answer,0)) desc
]]>
听说这种写法效率不高,可我暂时没有想到更好的,希望各位大大能提出更好的建议