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
  • 相关阅读:
    ORA-28001 has expired错误密码过期问题
    Oracle数据库无用户名密码登录
    使用Navicat连接Oracle数据库出现12541或者28547错误代码
    Solr的helloWord程序
    JS工具方法
    python发送邮件
    jmeter的性能监控框架搭建记录(Influxdb+Grafana+Jmeter)
    spotlight on mysql 监控
    linux下安装python环境
    yum的方式搭建mysql
  • 原文地址:https://www.cnblogs.com/ding2011/p/3270212.html
Copyright © 2011-2022 走看看