zoukankan      html  css  js  c++  java
  • sql server 查询多个不关联表且对结果编号

    1.除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。

    解决方法:top 100 percent *

    2.如何对查询结果编号?

    解决方法:row_number() over (order by billdate desc) as rowid

    3.如何查询多个不关联表?且各表的字段不一样怎么办?

    解决方法:使用union all,具体方法如下面代码

    示例代码:(执行成功,但代码有多余,为了提供实例说明)

    select top 50 a.* from (
    
    select top 100 percent *,row_number() over (order by billdate desc,a.lx asc,a.id desc) as rowid from
    (Select tablename='wenzhang',title,id,BILLDATE,lx,zqs=0,qs=0 From wenzhang 
    union all 
    Select tablename='jchd',title,id,BILLDATE,lx=7,zqs=0,qs=0  From jchd 
    union all
    Select tablename='jianbao',title,id,BILLDATE,lx=8,ZQS,QS From jianbao ) as a
    where 1=1 
    order by billdate desc,a.lx asc,a.id desc
    ) a where a.rowid not in (select top 25 a.rowid from (
    
    select top 100 percent *,row_number() over (order by billdate desc,a.lx asc,a.id desc) as rowid from
    (Select tablename='wenzhang',title,id,BILLDATE,lx,zqs=0,qs=0 From wenzhang 
    union all 
    Select tablename='jchd',title,id,BILLDATE,lx=7,zqs=0,qs=0  From jchd 
    union all
    Select tablename='jianbao',title,id,BILLDATE,lx=8,ZQS,QS From jianbao ) as a
    where 1=1 
    order by billdate desc,a.lx asc,a.id desc
    ) 
    a order by a.billdate desc,a.lx asc,a.id desc) order by a.billdate desc,a.lx asc,a.id desc

    简化后代码:(执行成功)

    select top 50 a.* from (
    
    select *,row_number() over (order by billdate desc,a.lx asc,a.id desc) as rowid from
    (Select tablename='wenzhang',title,id,BILLDATE,lx,zqs=0,qs=0 From wenzhang 
    union all 
    Select tablename='jchd',title,id,BILLDATE,lx=7,zqs=0,qs=0  From jchd 
    union all
    Select tablename='jianbao',title,id,BILLDATE,lx=8,ZQS,QS From jianbao ) as a
    where 1=1 
    
    ) a where a.rowid not in (select top 25 a.rowid from (
    
    select *,row_number() over (order by billdate desc,a.lx asc,a.id desc) as rowid from
    (Select tablename='wenzhang',title,id,BILLDATE,lx,zqs=0,qs=0 From wenzhang 
    union all 
    Select tablename='jchd',title,id,BILLDATE,lx=7,zqs=0,qs=0  From jchd 
    union all
    Select tablename='jianbao',title,id,BILLDATE,lx=8,ZQS,QS From jianbao ) as a
    where 1=1 
    
    ) 
    a order by a.billdate desc,a.lx asc,a.id desc) order by a.billdate desc,a.lx asc,a.id desc
  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/ding2011/p/3270212.html
Copyright © 2011-2022 走看看