sqlserver 用到临时表去除重复列

来源:互联网 发布:淘宝代码有何用 编辑:程序博客网 时间:2024/06/07 01:34

当做数据查询时需要分组,因为只有一列不同,同时还需要保留不同的列,使其不能受到影响。这时用 distinct 和 group by 就不能解决问题了。

就需要用到 临时表 来做到想要的结果。


// 先把稍后用到的临时表从临时数据库中删除。

 if object_id('tempdb..#temp_table') is not null

 Begin 
      drop table #temp_table
 End


//把从数据表中查出的数据放到临时表中 。注意此处 identity 的使用 ,它是一个自增的变量,可以为每一列分一个由大到小的 int 型值 。

//因为用到了 order by 排序,因此在第三步时用 min()聚合函数就会取出需要的那条记录。

select top 60 identity(int,1,1) id ,name, factoryname,catalogname,file_name,img2 into#temp_table 
 from tableName order by view_count desc


// 在这就可以用 min(id) 聚合函数来取出结果集

select top 6 * from #temp_table where id in(
select min(id) from #temp_table group by factoryname )


原创粉丝点击