微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver 用到临时表去除重复列

当做数据查询时需要分组,因为只有一列不同,同时还需要保留不同的列,使其不能受到影响。这时用 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 )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐