加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver 用到临时表去除重复列

发布时间:2020-12-12 14:01:20 所属栏目:MsSql教程 来源:网络整理
导读:当做数据查询时需要分组,因为只有一列不同,同时还需要保留不同的列,使其不能受到影响。这时用 distinct 和 group by 就不能解决问题了。 就需要用到 临时表 来做到想要的结果。 // ㈠ 先把稍后用到的临时表从临时数据库中删除。 ?if object_id('tempdb..

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读