数据库 语句 总结


问题:表#lastTable,列为:[provinceId],[allTypeSum],里面有几十行数据,我想选出全部,要排序,但是provinceId=40的不需要排,就是说我想把除了[provinceId]=40以外的全部行按allTypeSum值desc排序,再把[provinceId]=40行放到结果的最后面,然后输出

解决方法一:

select * from
(
  select top 100 * from #lastTable where provinceId!=40 order by allTypeSum desc  --注意这里必须要top这样的语句
)T
union all
select * from #lastTable where provinceId=40

其实这里差不多就是用了一个临时表,但是注意多重select和top

解决方法二:

select *,case provinceId when 40 then 1 else 0 end tempColunm
from #lastTable order by tempColunm asc, allTypeSum desc

其实这方法用到了case语句,就相当于给表新增加了一个列,provinceId=40的行的新加列值是1,其他都是0,然后再按两个排序,果真新加了一个列结果如下:

----------------------------------------------------------------------------------------

学到:.case语句新增临时列的强大

----------------------------------------------------------------------------------------

优质内容筛选与推荐>>
1、手把手教你做关键词匹配项目(搜索引擎)---- 第六天
2、AtomicInteger
3、mysql常用命令
4、远程连接Linux
5、maven构建SSM工程[应用]5


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn