SQL Server2008 Order by在union子句不可直接使用的原因详解_mssql2008

来源:脚本之家  责任编辑:小易  

按照要求,每个取top 20,既然是随机的取,那么就SQL Server Order by newid()就是了,然后把所有数据union起来就得了。所以我立即给出了答案:

selecttop 20 *fromxxxwheretype=1orderbynewid() 

union 

selecttop 20 *fromxxxwheretype=0orderbynewid()

但是在sql 查询分析器种不对,语法有错,我乍一看,好像没有问题吧:

selecttop 20 *fromxxxwheretype=1orderbynewid() 单独执行 都是没有问题得;

下面的半句也是一样的语法结构,也没有错误。但是把这两个查询union起来就错了。奇怪啊。既然提示是order附近有错,那么我将order给去掉:

去掉也是可以运行也没有错啊。也就是说在union子句中的查询不能用SQL Server Order by。但是这儿我必须要用order by啊,要不然我怎么取出随机的20条记录

最终改写成了:

SELECT * FROM 

(select TOP 20 * from dbo.AngelExam where (c='无' or c=null) and (d='无' or d=null) ORDER BY newid() ) a1 

UNION 

SELECT * FROM 

(select TOP 20 * from dbo.AngelExam where (c='无' or c=null) and (d='无' or d=null) ORDER BY newid()) a2 

看着语句长了不少,有点怪怪得,但是没法,不知道为什么SQL Server中不能在union子句中使用order by,所以只有外围在包装一层了。

到此这篇关于SQL Server2008 Order by在union子句不可直接使用的原因详解的文章就介绍到这了,更多相关SQL Server2008 Order by在union子句不可直接使用内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:深入SQL SERVER合并相关操作Union,Except,Intersect的详解sqlserver Union和SQL Union All使用方法SQLSERVER中union,cube,rollup,cumpute运算符使用说明

  • 本文相关:
  • sql server 2008中的代码安全(二) ddl触发器与登录触发器
  • sql server 2008 安装和配置图解教程(附官方下载地址)
  • sqlserver 2008 :error 40出现连接错误的解决方法
  • microsoft sql server 2008 基本安装说明
  • win2003系统下sql server 2008安装图解教程(详细图解)
  • 图文详解sql server 2008 r2安装配置方法
  • sql server 2008+ reporting services (ssrs)使用user登录问题
  • sql server 2008及更高版本数据库恢复方法之日志尾部备份
  • 如何安装sql server 2012群集
  • sql2008启动代理未将对象应用到实例解决方案
  • sql server 2008
  • SQL Server2008
  • sql server 2008
  • sql server 2008
  • SqlServer 2008数据库
  • sql server 2008 r2 和R1
  • sql server 2008怎么查看日志文件?
  • SQL Server 2008安装问题—— sql server 安装程序遇到以下错...
  • sql server2008 r2(64位) 激活密钥
  • sql server 2008怎么用sa登录
  • SQL server2008登陆不上
  • 卸载SQLSERVER 2008遇到的问题,无论如何都卸载不掉
  • 求SQL Server 2008开发版 下载地址
  • sql server 2008怎么连接到服务器
  • SQL Server 2008是否支持SQL Server 2000
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页深入sql server合并相关操作union,except,intersect的详解sqlserver union和sql union all使用方法sqlserver中union,cube,rollup,cumpute运算符使用说明sql server 2008中的代码安全(二) ddl触发器与登录触发器sql server 2008 安装和配置图解教程(附官方下载地址)sqlserver 2008 :error 40出现连接错误的解决方法microsoft sql server 2008 基本安装说明win2003系统下sql server 2008安装图解教程(详细图解)图文详解sql server 2008 r2安装配置方法sql server 2008+ reporting services (ssrs)使用user登录问题sql server 2008及更高版本数据库恢复方法之日志尾部备份如何安装sql server 2012群集sql2008启动代理未将对象应用到实例解决方案sql server 2008完全卸载方法(其他版本类似)sql server 2008 安装和配置图解教程(附官方下sql server 2008 r2 超详细安装图文教程在与 sql server 建立连接时出现与网络相关的或特定安装sql server 2008时的4个常见错误和解决方法sql server 2008登录错误:无法连接到(locasql server 2008 阻止保存要求重新创建表的更改sqlserver 2008将数据导出到sql脚本文件的方法sql server 2008 清空删除日志文件(瞬间日志变图文详解sql server 2008r2使用教程mssql 2008不能用ip登录问题如何解决sql server 2008 数据安全(备份和恢复数据库)sql server 2008中的apply运算符使用方法sql server 2008安装过程中服务器配置出错解决办法sql server 2008安裝图文教程sql server native client下载 sql server sql server 2008中的数据表压缩功能详细介绍sql server 2008怎样添加自增列实现自增序号sqlserver2008存储过程实现数据插入与更新java打印和打印预览机制实例代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved