gundumw100 2009-09-08 15:00 采纳率: 0%
浏览 215
已采纳

问一条sql语句

我要查询所有记录,并且要让state=2的记录排在前面,我该怎么样表达?谢谢
[b]问题补充:[/b]
state 有可能是0,1,2,3,4,5,6。。。。
[b]问题补充:[/b]
又,如果用 Order.asc("XXX")这么表达?
[b]问题补充:[/b]
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(TableName.class);
detachedCriteria.addOrder(Order.asc("state"));
如果要用上面的方法表达,该怎么写?
[b]问题补充:[/b]
select * from table order by (case state when 2 then 1 else 2 end) asc

select * from table where state=2
union all
select * from table where state<>2

这2中方法哪种效率更高一些呢?
我本来的确想用hibernate的Criteria.,看来只能用sql了

  • 写回答

12条回答 默认 最新

  • jpdan 2009-09-08 20:32
    关注

    你的需求只是把state=2的排在最前面,现在不是已经做到了么?
    select * from table order by (case state when 2 then 1 else 2 end) asc
    这个就是的啊,不管你state有多少个不同的值,这个SQL都OK啊。
    Order.asc("XXX")什么意思?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测