关于order by 排序的问题
比如下面的语句:
第一个排序方法,如果是先按日期排序后插入临时表:
select id,listdate,amount
into #tmp002
from #tmp001 order by listdate
select * from #tmp002
第二个排序方法是直接排序:
select id,listdate,amount
from #tmp001 order by listdate
我发现,第一种的做法显示出来的数据的日期排序是不对的。而第二种排序方法是对的。
第一个排序的数据显示是:

第二个排序的数据显示是:

很显然,第二个排序的数据是对的,第一个排序数据不对(因为2015-10-16 16:31:53.000和2015-10-20 10:36:24.000这两数据跑到后面去了。),请问第一个先用排序插入临时表,为什么不会排序的?如何来改第一个排序的sql语句?
create table #tmp001(rowid int identity(1,1),id int,listdate datetime,amount decimal(18,4),getamount decimal(18,4))
insert into #tmp001(id,listdate,amount)
select id,listdate,amount
from t_wh_billofdocument as p
left join #billofdocument_receivables as p1 on p.id=p1.wh_billofdocument_id
WHERE convert(datetime,convert(varchar(10),p.listdate))<@lastdate1
and p.bs_customer_id=@bs_customer_id
union all
select id,listdate,amount
from t_wh_gatheringpayment
where type=1
and convert(datetime,convert(varchar(10),listdate))<@lastdate1
and bs_customer_id=@bs_customer_id
select id,listdate,amount
into #tmp002
from #tmp001 order by listdate
select * from #tmp002
select id,listdate,amount
from #tmp001 order by listdate
第一个排序方法,如果是先按日期排序后插入临时表:
select id,listdate,amount
into #tmp002
from #tmp001 order by listdate
select * from #tmp002
第二个排序方法是直接排序:
select id,listdate,amount
from #tmp001 order by listdate
我发现,第一种的做法显示出来的数据的日期排序是不对的。而第二种排序方法是对的。
第一个排序的数据显示是:

第二个排序的数据显示是:

很显然,第二个排序的数据是对的,第一个排序数据不对(因为2015-10-16 16:31:53.000和2015-10-20 10:36:24.000这两数据跑到后面去了。),请问第一个先用排序插入临时表,为什么不会排序的?如何来改第一个排序的sql语句?
...全文
相关推荐
SQL order by ID desc/asc加一个排序的字段解决查询慢问题
在给定的问题中,"SQL order by ID desc/asc加一个排序的字段解决查询慢问题"是一个常见的数据库优化技巧。
union all与order by用法
这是因为 UNION ALL 的优先级高于 ORDER BY,ORDER BY 只能在 UNION ALL 的最后一个子查询中使用。解决方法为了解决这个问题,我们可以使用以下方法:1.
MySQL中Order By多字段排序规则代码示例
当涉及到多字段排序时,例如:```sqlSELECT * FROM a ORDER BY code, name DESC;```MySQL会按照指定的字段顺序依次进行排序。
Mysql排序和分页(order by&limit)及存在的坑
例如,如果我们要查看`test2`表中按照`a`字段降序排列的记录,可以执行:```sqlSELECT * FROM test2 ORDER BY a DESC;```当需要同时根据多个字段排序时,可以在
MySQL中group by与order by使用问题[代码]
在处理MySQL中的group by与order by结合使用时出现的问题时,开发者需要通过多种策略来实现精确的分组和排序需求,确保数据的准确性和查询效率。


