SQLSERVER的排序问题结果不是想要的

在论坛里经常有人问这样的问题:

同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?

其实,只要语句里没有指定“order by”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引

你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段的顺序排好序了,所以可以不指定“order by”,但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了索引,而在SQL2005/2008里没有建立索引,那么就要明确地用“order by”指定。如果你没有指定,哪怕一模一样的查询,

结果集顺序这一次和上一次不一样是很正常的。

时间: 2024-09-20 00:10:31

SQLSERVER的排序问题结果不是想要的的相关文章

SQLSERVER的排序问题结果不是想要的_MsSql

在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序? 其实,只要语句里没有指定"order by",SQLSERVER并不会按照顺序返回的.有可能你的表里有一个字段已经建立了索引 你想结果集按照那个建立了索引的字段排序,那么你不指定"order by"是没有问题的,因为表的存储顺序就是按照那个字段的顺序排好序了,所以可以不指定"ord

sql server-关于sqlserver 导入数据的问题

问题描述 关于sqlserver 导入数据的问题 我想导入一个平面文件源数据,失败显示数据源列不唯一 我基本不会数据库,数据源列是不是就是主键?怎么修改设置 而且我看了下我要导入数据,没有可以做主键,怎样可以再导入的同时给每条数据编号,或者其他可以完整导入数据的方法告我下(越简单越好) 解决方案 建表的同时给一个列设为标识列你指定种子数和增数,它会自动增长而且是唯一的(后面你再添加数据的时候这个列是可以不用管的) 解决方案二: excel导入数据到sqlserver的问题sqlserver关于

冒泡排序-MPI并行冒泡二路归并排序问题

问题描述 MPI并行冒泡二路归并排序问题 我思路是想吧随机产生的数组a 按照总进程数分s份 然后分到别的进程冒泡排序,然后在聚集回来 二路归并下边是代码 求大神帮忙改改~~~ // mpi.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "mpi.h" #include #include #include #include #include using namespace std; void merge(in

工作总结之PHP连接Microsoft SQL Server 2000/2005/2008

最近由于工作需要用于SQL Server,想做一个测试环境,SQL Server 2008不是刚出来,图个新鲜,就下载了2008版的,用了很多方法一直没能连接上SQL Server 2008.在网上找了一些资料,终于连接上了SQL Server 2008,整理了一下收集到的资料,利用中午休息时间,写个贴子发出来,让大家看看.呵呵!! PHP自带的MSSQL扩展php_mssql.dll原来是给SQL Server 2000用的,难怪连接不上2008?! -_-!!要使用SQL Server 20

跪求:winform 访问要求使用代理的外网SQL SERVER

问题描述 这样的场景:外网云数据库是SQLSERVER2008,IP:123.123.123.123,端口:1433,帐号:sa,密码:sa123公司要访问外网需要在代理服务器里作设置,代理IP是:111.111.111.111,端口:8080,用户是:usr,密码是:pwds现在我c#开发的WINFORM程序要访问外网的云数据库,要怎么才可以设置?代理服务器要设置吗?WINFORM连接数据库要怎样连接?说明:如果没有代理限制的网络,数据源直接是上面的数据库IP,是可以正常访问的,现在多了一层代

显示-sqlserver排序问题,如何保存

问题描述 sqlserver排序问题,如何保存 select * from 矿石生产 order by [DEPARTMENT_NAME] asc, [REPORT_DATE] asc, [INDEX_ID] asc 这样查询的结果是我想要的顺序,如何保存呢? select * into tableB from 矿石生产 order by [DEPARTMENT_NAME] asc, [REPORT_DATE] asc, [INDEX_ID] asc 为什么tableB中显示的不是我想要的顺序啊

sqlserver where in 排序问题

问题描述 sqlserver where in 排序问题 SQL语句:select * from PRDT where PRD_NO in ('C''A''D''B') 怎么让结果排序根据where in 里面的PRD_NO的先后顺序-排序. 结果如下:CADB而不是:ABCD 解决方案 select * from PRDT where PRD_NO in ('C''A''D''B') ORDER BY CHARINDEX(PRD_NO'CADB')

我想用asp.net+sqlserver做一个统计系统,谁能帮帮我?

问题描述 我想利用asp.net+sqlserver做一个统计系统,设想是这样的:用asp.net做一个系统,连接服务器的sqlserver数据库,也就是让每个部门每个月通过局域网键入网址报送原始数据,我再利用传到数据库的信息,做一个统计程序,生成excle表格.结构大体就是这样,因为是初学,以前有过一些编程的底子,就是想找这方面的书籍来参考,或者是实例,请大家帮忙. 解决方案 解决方案二:就是最基本的数据上报和统计以及报表显示:一个程序熟练工应该可以做的:解决方案三:up

sql server-vs使用sqlserver语句,列名是由我提供数据,但是又想找到该列名的数据

问题描述 vs使用sqlserver语句,列名是由我提供数据,但是又想找到该列名的数据 我前面已经输出很多个列名,现在让客户点击一个列名,我想输出这个列名下的数据,而我想用中间变量代替,如"select distinct @name from one"但是不可以啊 或者你有其他的办法,求大神帮忙 解决方案 得到点击的文本嵌入select语句中不就好了吗 解决方案二: 得到点击的文本嵌入select语句中不就好了吗 解决方案三: 得到点击的文本嵌入select语句中不就好了吗 解决方案四