liuchaono1 2010-02-25 10:26
浏览 282
已采纳

sql server中这样的sql语句什么意思?

数据库:sql server 2005
表名:test_liu
表结构:test_liu(id(int),name(varchar),category(varchar))
表中的数据:见附件图片
有没有知道,下面这条sql是什么意思?结果到底是按照什么排序的?
select * from test_liu order by case test_liu.category when 'fruit' then 'vegetable' else 'fruit' end;

哪位能给指点指点,先谢过了!

  • 写回答

2条回答 默认 最新

  • iteye_13500 2010-02-27 10:31
    关注

    [quote]可令人难以理解的是,为什么category为‘both’的tomato会排在‘vegetable’和‘fruit’中间呢?另外,对于category同是'fruit'的记录,又是按照什么排序的,按照id吗?[/quote]

    1 为什么category为‘both’的tomato会排在‘vegetable’和‘fruit’中间呢?
    按照表达式,category为‘both’和‘vegetable’时值是相同的,此时该类显示是按照记录出现的顺序出现的。所以id出现的顺序是3,4,6.

    2 对于category同是'fruit'的记录,又是按照什么排序的,按照id吗?
    和上面一样,按记录出现的顺序,在你提供的表里,就是按照id。

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

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置