MSSQL的union问题?
SQL代码如下:
declare @i int
set @i=0
select type=@i+1,EmployeeID from Employees union select type=@i+2,OrderID from Orders
执行结果:
执行的结果是:
1 1312
1 246
1 3
1 0989
1 5346
2 10248
2 10249
2 10250
2 10251
..
我本意是想这样:
1 1312
2 246
3 3
4 0989
5 5346
6 10248
7 10249
8 10250
9 10251
我是想连接几个表,然后用数字排序,能不能实现,
请高手指点
------解决方案--------------------select identity(int,1,1),[id] into #t from (select EmployeeID as [id] from Employees union select OrderID as [id] from Orders ) a
select * from #t
drop table #t
------解决方案--------------------create table #t (type identity(1,1) int, iid int)
insert #t
select EmployeeID from Employees union select OrderID from Orders
select * from #t
drop table #t
------解决方案--------------------你的要求就是跟SQL查询分析器里查出的记录集前方它自己显示的序号吧
基于性能考虑,建议采用临时表处理
SELECT IDENTITY(INT, 1, 1) AS Rank,a.ID
INTO #tmp
FROM (select EmployeeID as ID from Employees union select OrderID as ID from Orders) a
SELECT * FROM #tmp
用完后DROP TABLE #tmp