SQLSERVER 子查询中使用ORDER BY
SQLSERVER如何在子查询中使用ORDER BY
今天在使用公司的一个pager接口的时候,需要传递一个查询的SQL语句,因为我希望他能够在pager对他查询出来的结果排序之前自己先进行排序,
于是在这个SQL中添加了ORDER BY,但是得到的结果是这么个异常:
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
这个异常信息已经说的很清楚了,要解决这个问题只能指定TOP,可是这个变态的接口需要的是没有TOP条数的SQL,怎么办呢?
当时想啊,思路有两个:
1.查询的时候加一个ROW_NUMBER,这样就能达到查询出的结果是按自己的意愿排序的啦。
事实证明这样是可行的,需要的语句是这样的:select ROW_NUMBER() over(order by name) as rn,* from Movie;
2.还是添加TOP,但是要TOP所有的记录条数。
这个有个难点,怎么获得所有的记录条数呢?
在查阅资料的时候发现了一个写了这么写年的SQL却从来没用过,也没听人提起过,学习SQL时也未曾发现的好东东啊
TOP 100 PERCENT
当然也可以是其他的百分比,不过这个100 PERCENT, 正好解决了我的问题。
于是我的SQL可以是这样的:select top 100 percent * from Movie order by name;
总结:这样就有两个知识点了
1.子查询中不能有ORDER BY, 除非指定了TOP;
2.TOP后面可以跟百分比,如:TOP 35 PERCENT;
SQLSERVER 子查询中使用ORDER BY的更多相关文章
- SQLSERVER如何在子查询中使用ORDER BY
今天在使用公司的一个pager接口的时候,需要传递一个查询的SQL语句,因为我希望他能够在pager对他查询出来的结果排序之前自己先进行排序, 于是在这个SQL中添加了ORDER BY,但是得到的结果 ...
- 当子查询内存在ORDER BY 字句时查询会报错
问题:当子查询内存在ORDER BY 字句时查询会报错 SQL: SELECT * FROM ( SELECT * FROM USER ORDER BY USER_CORD ) S. 解决办法:在子查 ...
- 子查询中的NULL问题
子查询返回有单行,多行和null值:适用于单行子查询的比较运算符是=,>,>=,<,<=<>和!=.适用于多行子查询的比较运算符是in,not in,any和any ...
- Mybatis 一对多延迟加载,并且子查询中与主表字段不对应 (19)
Mybatis 一对多延迟加载,并且子查询中与主表字段不对应应用说明. 实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号 ...
- Mysql in子查询中加limit报错
Mysql in子查询中加limit报错 select id from aa where id in ( select id from bb limit 10 ); 改写成 SELECT id FRO ...
- Oracle子查询中any、some、all之间的区别
用some,any和all对子查询中返回的多行结果进行处理. 下面我们来简单介一下这几个关键词的含义. * Some在此表示满足其中一个的意义,是用or串起来的比较从句. * Any也表示满足其中一个 ...
- oracle 子查询中null的问题(in 和 not in)
这里的in后面的句子可以理解为or拼接,简单举例即 in (9566,9839,null)可以等价于mgr=9566 or mgr=9839 or mgr=null, not in (9566,983 ...
- SqlServer子查询、高级
子查询:把一个结果集让别人继续分析查询的就叫子查询 子查询如果定义了别名,在查询引用时,必须使用别名 --子查询定义了别名,引用就必须用别名 select id,n from Person,(sele ...
- mysql更新子查询中的内容
UPDATE t_finance_certify_copy c SET c.biz_type=2,c.sub_biz_type=18WHERE c.finance_certify_id IN(SELE ...
随机推荐
- 【翻译自mos文章】使用dbua升级时,须要手工设置CLUSTER_DATABASE參数么?
使用dbua升级时,须要手工设置CLUSTER_DATABASE參数么? 来源于: Is Manual Setting Of CLUSTER_DATABASE Parameter Required F ...
- maven POM.xml内的标签大全详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- DX:神奇的LayoutControl.BestFit()
自动生成LayoutControl后,界面总是不对:在LayoutControl中找到一个BestFit()方法,调用后神奇的结果出现了,这不正是我想要的吗?测试代码: public partial ...
- cygwin完全安装步骤方法(组图)
我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/ 或者直接使用下载连接来下载安装程序,下载连接是: http://www.cygwin ...
- jquery serialize对json的包装用法
jquery对象.serialize() 可以多用于表单对数据封装提交 能够收表参数,形成一个json格式字符串, 前提是:必须为每一个表单项取一个name属性 对元素 设置 name属性, 然后 ...
- 路径,通过navigation可以查看 *.class文件
?.class文件内的代码所在的文件的路径默认 举例1:读取项目根目录下的数据. private static void readRoot() throws FileNotFoundException ...
- js setAttribute removeAttribute
<input type="button" value="生效" style="font-size:111px"/> <sc ...
- Notepad++的json 格式化
1. 打开nodepad++ 2. 找到JSON Viewer 点击右上角"安装", 会有提示框安装重启notepad++, 点击ok 3. 自动重启后, 就可以看到 ...
- [转]MegCup2015初赛题
原文链接 门票题:数独有多少种对解线上没有1的填法? 这道"门票题"虽说只是"热身",但还是有一定难度的.共有245名选手通过各种方法拿到了门票.下面,我们就为 ...
- iOS - CFNetwork 的使用
1.CFNetwork CFNetwork 是基于 OS 层 BSDSocket 封装(纯 C),用于网络通信,早期的网络请求框架 ASIHTTPRequest 就是基于 CFNetwork 进行的封 ...