SQL Server 排序问题


SQL语句的order by 部分是一样的。
1:sql

   
  select
  
b.kou_kkid,
b.kou_koukyakujkana,
a.kai_jkana
from
adt_kokyaku b,
adt_kaisya a
where b.kou_kscd = a.kai_kscd
AND b.kou_tcd='130000' AND b.kou_sjflg='F'
order by a.kai_jkana,b.kou_koukyakujkana

2:sql

   
  select
  
b.kou_kkid,
b.kou_koukyakujkana,
a.kai_jkana
from
adt_kokyaku b,
adt_kaisya a
where b.kou_kscd = a.kai_kscd
AND (b.kou_kkid=1006049 OR b.kou_kkid=1006054 OR b.kou_kkid=1006050 OR b.kou_kkid=1006055 OR b.kou_kkid=1006051 OR b.kou_kkid=1006056 OR b.kou_kkid=1006048 OR b.kou_kkid=1006053 OR b.kou_kkid=1006052 OR b.kou_kkid=1006044 OR b.kou_kkid=1006046 OR b.kou_kkid=1006058 OR b.kou_kkid=1006065 OR b.kou_kkid=1006066 OR b.kou_kkid=1006033 OR b.kou_kkid=1006035 OR b.kou_kkid=1006040 OR b.kou_kkid=1006042 OR b.kou_kkid=1006041 OR b.kou_kkid=1006043 OR b.kou_kkid=1006045 OR b.kou_kkid=1006047 OR b.kou_kkid=1006059 OR b.kou_kkid=1006063 OR b.kou_kkid=1006064 OR b.kou_kkid=1006071 OR b.kou_kkid=1006110 OR b.kou_kkid=1006113 OR b.kou_kkid=1006114 OR b.kou_kkid=1006115 OR b.kou_kkid=1006116 OR b.kou_kkid=1006117 OR b.kou_kkid=1006118 OR b.kou_kkid=1006122 OR b.kou_kkid=1006123 OR b.kou_kkid=1006124 OR b.kou_kkid=1006125 OR b.kou_kkid=1006126 OR b.kou_kkid=1005936 OR b.kou_kkid=1005939 OR b.kou_kkid=1005941 OR b.kou_kkid=1005937 OR b.kou_kkid=1005938 OR b.kou_kkid=1006032 OR b.kou_kkid=1006034 OR b.kou_kkid=1006038 OR b.kou_kkid=1006039 OR b.kou_kkid=1006057 OR b.kou_kkid=1006029 OR b.kou_kkid=1005979 OR b.kou_kkid=1005980 OR b.kou_kkid=1005974 OR b.kou_kkid=1005976 OR b.kou_kkid=1005981 OR b.kou_kkid=1005945 OR b.kou_kkid=1005950 OR b.kou_kkid=1005953 OR b.kou_kkid=1006030 OR b.kou_kkid=1006028 OR b.kou_kkid=1006031 OR b.kou_kkid=1005946 OR b.kou_kkid=1005949 OR b.kou_kkid=1005954 OR b.kou_kkid=1005957 OR b.kou_kkid=1005961 OR b.kou_kkid=1005965 OR b.kou_kkid=1005968 OR b.kou_kkid=1005970 OR b.kou_kkid=1005972 OR b.kou_kkid=1005958 OR b.kou_kkid=1005962 OR b.kou_kkid=1005966 OR b.kou_kkid=1005967 OR b.kou_kkid=1005969 OR b.kou_kkid=1005971 OR b.kou_kkid=1005973 OR b.kou_kkid=1005975 OR b.kou_kkid=1005978 OR b.kou_kkid=1005932 OR b.kou_kkid=1006027)
AND b.kou_sjflg='F'
order by a.kai_jkana,b.kou_koukyakujkana

运行结果图:

请输入图片描述

如果去掉2条SQL的AND条件部分(或者2SQL的or条件部分连接的少一点), 排序结果是一样的。
望高手,大神 帮帮解读。

sqlserver

   落白。 11 years, 6 months ago

检查一下数据,kou_kid等于1006049和1006054的记录可能都各有2条,第一条sql中的AND b.kou_tcd='130000'条件可能是误导你以为排序非预期的原因,去掉这个条件试试2种查询结果是否一样,还是不一样说明我的猜测不成立,否则应该就是这个原因。

FUUKE answered 11 years, 6 months ago

Your Answer