2012-03-30 56 views
0

我有一个搜索页面,其中通过传递多个参数来搜索数据。我使用StartDate(日期时间字段)作为默认排序顺序(如果没有提供排序顺序,结果将根据StartDate排序)。在搜索时,如果多行具有相同的StartDate,我将获得随机的数据行顺序。 有谁可以告诉我这是什么原因? 感谢在列上完成排序时的行的随机顺序

+0

你是什么意思的“默认排序顺序”? SQL Server没有默认的排序顺序。 – datagod 2012-03-30 14:39:27

+0

更新后的描述 – 2012-03-30 14:42:21

回答

4

如果没有明确定义排序顺序,也没有保证的顺序在要返回的行。

如果ORDER BY单场,行组内有一个顺序除非您定义它,否则该字段上的匹配是不确定的。

我不确定你期望得到什么样的订单。如果您有需要的订单,您必须指定它才能按照该顺序获取这些行。

期间。

+0

感谢JNK的回复,您能否向我提供解释此行为的任何链接/文档? – 2012-04-02 06:13:54

+0

@AshwaniK [它在ORDER BY页面上](http://msdn.microsoft.com/en-us/library/ms188385.aspx):'除非结果集中的行返回的顺序不能保证,除非指定了ORDER BY子句。' – JNK 2012-04-02 12:08:01

+0

但是在这里,我们正在指定顺序。如果您可以提供任何链接来解释在使用列顺序时遇到相同值时的行为,这将非常有帮助。 – 2012-04-02 13:13:42