在ORDER BY排序后,表中SQL字段相加却出现了问题?下面就为您详细解读出现的问题,以及解决的办法,供您参考学习。
在sql server2000自带DB-pubs,运行下面的sql,它是把***条和第二条记录的字段job_id进行了相加
我们可以得到字符:1.2.
- declare @str varchar(1000)
- select @str=''
- SELECT top 2 @str=@str+ convert(varchar(10),job_id)+'.'
- FROM [pubs].[dbo].[jobs]
- print @str
现在我想从表中随机抽2条记录,把job_id SQL字段来相加
我们只得到字符:5.
- declare @str varchar(1000)
- select @str=''
- SELECT top 2 @str=@str+ convert(varchar(10),job_id)+'.'
- FROM [pubs].[dbo].[jobs]
- order by newid()
- print @str
这时我总是只能得到一条随机行的job_id
这样排序后为什么是这样?
我想了一个中转的方法
就是利用了局部临时表过渡
- SELECT top 2 job_id
- into #temp
- FROM [pubs].[dbo].[jobs]
- order by newid()
这样再利用#temp来进行job_id的SQL字段相加
【编辑推荐】