加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer使用top 100 PERCENT 无法排序的问题

发布时间:2020-12-12 13:27:37 所属栏目:MsSql教程 来源:网络整理
导读:由于公司提供的分页控件需要我使用top子句,而且有必要将查询到的记录全部取出,确发现不能排序,sql语句如下: ? SELECT TOP 15 * FROM( SELECT? TOP (100) ?PERCENT * FROM ( SELECT a.recID,a.eventLevel,a.srcIP,a.dstIP,a.eventTime,a.eventCount,a.src

由于公司提供的分页控件需要我使用top子句,而且有必要将查询到的记录全部取出,确发现不能排序,sql语句如下:

?

SELECT TOP 15 * FROM(

SELECT?TOP (100)?PERCENT * FROM (

SELECT

a.recID,a.eventLevel,a.srcIP,a.dstIP,a.eventTime,a.eventCount,a.srcPort,a.dstPort,?
b.popular,b.eventName,b.popularName,b.securityID,d.deviceIP,d.deviceName?
FROM NETIDS_EVENTLOG a,NETIDS_DEFINE_EVENTBASE b,SYSTEM_DEPLOY d?
WHERE a.eventTypeID=b.eventTypeID AND a.DEV_GUID=d.DEV_GUID

?

UNION ALL

?

SELECT?

) AS _VWFT order by _VWFT.eventtime desc

) AS _VWFT1

困扰了很久,后得知SqlServer使用top 100 PERCENT 会使排序失效。

解决办法有二:

一、下载一个SqlServer2005的补丁包,不推荐开发人员使用(你很难在向用户推销产品的时候找到借口让他费事去整一遍数据库。。)至于是哪个版本的补丁,我也没找到,反正包也不多,有兴趣的可以试下,有结果了还望周知啊~

二、使用select top 99.999999 PERCENT,一般来说,你的数据库不回超过1亿条数据,使用99.999999 PERCENT不会使你遗漏数据。需要的话再添俩9

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读