今天为QA写一个报表,使用了存储过程,在里面定义了一个临时表, 然后向临时表插入数据,插入数据的顺序和临时表的字段定义的顺序不一样,结果出来的结果乱七八糟,查了半天也没有想到什么原因,后来突然想到是不是和顺序有关,修改了insert语句里面的字段插入顺序,问题搞定。
唉,不知道是我对SQL了解太少还是SQL server确实很烂。
例子如下:
DECLARE @TEMP_TABLE TABLE (id int,count int)
insert INTO @TEMP_TABLE
select x.id as id, count(x.id) as count
from xxx x group by x.id
insert INTO @TEMP_TABLE
select count(x.id) as count), x.id as id
from xxx x group by x.id
上面的那个insert可以工作,下面的不能,得到的结果和期望的是不一致的