博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询...
阅读量:7204 次
发布时间:2019-06-29

本文共 728 字,大约阅读时间需要 2 分钟。

执行sql语句:

select * from (

select * from tab where ID>20 order by userID desc

) as a order by date desc

逻辑上看着挺对 但是报错:

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

只要我们在嵌套子查询视图里面加入: top 100 percent 即可

select * from (

select top 100 percent * from tab where ID>20 order by userID desc

) as a order by date desc

默认情况下,如果在子查询,函数,视图中尝试去使用ORDER BY,

CREATE VIEW dbo.VSortedOrdersASSELECT orderid, customeridFROM dbo.OrdersORDER BY orderidGO

 

那么可能会遇到下面的错误

消息 1033,级别 15,状态 1,第 4 行除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
原因就是针对一个表的SELECT其实并不是返回一个表,而是一个游标。
 
如果一定要用怎么办呢?答案就是配合TOP 100 PERCENT
SELECT     TOP (100) PERCENT orderid, customeridFROM         dbo.OrdersORDER BY orderid, customerid DESC

转载地址:http://egsum.baihongyu.com/

你可能感兴趣的文章
[笔记][朝花夕拾][Multisim基础电路范例].第一章 RLC电路,第七、八节 米勒定理...
查看>>
免费论文查重
查看>>
【GPRS】GSM和GPRS模块的应用
查看>>
第一章 Docker简介和基本概念
查看>>
java代码-----实现打印三角形
查看>>
python(4) 小程序-异步加载
查看>>
20190327(练手感)
查看>>
modelform动态显示select标签的对象范围
查看>>
Android ---------- 富文本构建
查看>>
leetcode:Count Primes
查看>>
[转] babel的使用
查看>>
CentOS7.0安装与配置Tomcat-7
查看>>
C# SQL数据访问帮助类
查看>>
.net面试(汇总)
查看>>
.NET Entity Framework基本使用方法
查看>>
BZOJ3528: [Zjoi2014]星系调查
查看>>
Lua 随机数生成问题
查看>>
CLR的执行模型(4):执行程序集的代码
查看>>
同一脚本sh 脚本名 报Syntax error: "(" unexpected而./脚本名不报错,求解!!
查看>>
ZJOI2008皇帝的烦恼
查看>>