sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1008字,纯文字阅读大概需要2分钟。
内容图文
![sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询](/upload/InfoBanner/zyjiaocheng/871/0acc07495a2f41a38385538edc1d233d.jpg)
执行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.VSortedOrders AS SELECT orderid, customerid FROM dbo.Orders ORDER BY orderid GO
那么可能会遇到下面的错误
消息 1033,级别 15,状态 1,第 4 行 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
原因就是针对一个表的SELECT其实并不是返回一个表,而是一个游标。
如果一定要用怎么办呢?答案就是配合TOP 100 PERCENT
SELECT TOP (100) PERCENT orderid, customerid FROM dbo.Orders ORDER BY orderid, customerid DESC
转载自:https://www.cnblogs.com/zhangqs008/p/3655631.html
内容总结
以上是互联网集市为您收集整理的sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询全部内容,希望文章能够帮你解决sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。