排序后表中SQL字段相加的问题解决


  本文标签:SQL字段相加

  在ORDER BY排序后,表中SQL字段相加却出现了问题?下面就为您详细解读出现的问题,以及解决的办法,供您参考学习  。

  在sql server2000自带DB-pubs,运行下面的sql,它是把第一条和第二条记录的字段job_id进行了相加
我们可以得到字符:1.2.

  1. declare @str varchar(1000)   
  2. select @str=   
  3. SELECT top 2  @str=@str+ convert(varchar(10),job_id)+.   
  4. FROM [pubs].[dbo].[jobs]   
  5. print @str  

  现在我想从表中随机抽2条记录,把job_id SQL字段来相加
我们只得到字符:5.

  1. declare @str varchar(1000)   
  2. select @str=   
  3. SELECT top 2  @str=@str+ convert(varchar(10),job_id)+.   
  4. FROM [pubs].[dbo].[jobs]   
  5. order by newid()   
  6. print @str  

  这时我总是只能得到一条随机行的job_id
这样排序后为什么是这样?

  我想了一个中转的方法
就是利用了局部临时表过渡

  1. SELECT top 2  job_id   
  2. into #temp   
  3. FROM [pubs].[dbo].[jobs]   
  4. order by newid()  

  这样再利用#temp来进行job_id的SQL字段相加