由于公司提供的分页控件需要我使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。