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

所属分类: 数据库 / mssql2008 阅读数: 788
收藏 0 赞 0 分享

按照要求,每个取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,所以只有外围在包装一层了。

更多精彩内容其他人还在看

SQLServer2008新实例远程数据库链接问题(sp_addlinkedserver)

这篇文章主要介绍了SQLServer2008新实例远程数据库链接问题(sp_addlinkedserver),需要的朋友可以参考下
收藏 0 赞 0 分享

Sql Server 2008安裝图文教程

这篇文章主要介绍了Sql Server 2008安裝图文教程,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL Server 2008中SQL查询语句字段值不区分大小写的问题解决

这篇文章主要介绍了关于SQL Server 2008中SQL查询语句字段值不区分大小写问题的解决方法,文中将解决方法介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
收藏 0 赞 0 分享

SQL Server 2008打开输入sa密码提示无法登陆数据库的解决方法

与 SQL Server建立连接时出现与网络相关的或特定于实例的错误,这篇文章主要介绍了SQL Server 2008打开输入sa密码提示无法登陆数据库的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SQL SERVER 2008数据库日志文件收缩的方法

这篇文章主要为大家详细介绍了SQL SERVER 2008数据库日志文件收缩的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

sql server2008数据库迁移的两种方法

这篇文章主要为大家详细介绍了sql server2008数据库迁移的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

解决sql server2008注册表写入失败,vs2013核心功能安装失败

本文给大家分享的是作者在更换硬盘后全新安装sql server2008以及VS2013的过程中遇到的注册表无法写入的问题以及解决方法,分享给大家,希望大家能够喜欢
收藏 0 赞 0 分享

SQL Server 2008 R2 为用户权限分配的操作步骤

这篇文章主要介绍了SQL Server 2008 R2 为用户权限分配的操作步骤,有时候我们不得不设置一些权限,例如禁止删除等,那么就可以参考下面的方法
收藏 0 赞 0 分享

Sql Server 2008数据库新建分配用户的详细步骤

当一个项目完成后,为了数据安全,总会对该项目的数据库分配一个用户,应该说总会创建一个用户来管理这个数据库,并且这个用户只能管理这个数据库,绝对不要使用sa用户
收藏 0 赞 0 分享

Sql Server 2008R2升级Sql Server 2012图文教程

这篇文章主要分享了了Sql Server 2008R2升级Sql Server 2012图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多