SQLServer使用identity函数生成带有自增列临时表遇到的一个排序问题

  今天在使用identity函数生成临时表的时候出现一个关于排序的问题.

select identity(int,1,1) myrow_id,billno
into #temp
from myTable
order by myTable.myrow_id

  我想按照myrow_id排序然后插入临时表#temp,并利用identity(int,1,1)函数生成行号列,结果#temp表里数据始终未能按照myrow_id排序。

  后来我想是不是由于identity(int,1,1)的别名和排序列名称重复,导致排序时sql把排序列当成了identity(int,1,1)呢?然后我把identity(int,1,1)的别名改为了id,问题解决,插入#temp中的结果集排序正常。

  结论:在使用identity函数生成临时表的时候,如果需要排序,那么identity的别名不能与排序列名称相同,否则排序失效。

阅读更多
文章标签: sqlserver sql
上一篇SQL Server各种日期计算方法
下一篇PB中如何利用左右键及回车键来转移列的焦点
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭