sql不显示重复列

在报表里,基本上都可以把重复的资料不显示,在SQL里怎么才能做到如下情况呢?

a	10
a	20
b	30
b	40
b	50

显示为:

a	10
	20
b	30
	40
	50

SQL 如下:

create table #a (part varchar(10),price int)
go

insert into #a values('a',10)
insert into #a values('a',20)

insert into #a values('b',30)
insert into #a values('b',40)
insert into #a values('b',50)

go

select * from #a

go

select part ,MIN(price) price into #b from #a group by part
go

select * from #a
select * from #b
go 

 select
 case when price in (select price from #b) then part else '' end ,price
  from #a
 go

参考: http://bbs.csdn.net/topics/310112824

主要内容:

方案一:

if object_id('[tab]') is not null drop table [tab]
create table [tab]([单位] varchar(6),[姓名] varchar(4),[学历] varchar(4))
insert [tab]
select '一车间','张三','本科' union all
select '一车间','李四','本科' union all
select '一车间','王五','本科' union all
select '二车间','王中','专科' union all
select '二车间','刘一','专科'

select 单位,姓名,学历 from
(
	select 单位,姓名=(select top 1 姓名 from tab where ta.单位=单位 and ta.学历=学历),学历,s1=0,s2=单位,s3=0 from tab ta group by 单位,学历 union all
	select '   '  ,姓名,'',s1=0,s2=单位,s3=1 from  tab tb where  姓名<>(select top 1 姓名 from tab where tb.单位=单位 and tb.学历=学历)
)t
order by s1,s2,s3

/*
单位     姓名   学历
------ ---- ----
二车间    王中   专科
       刘一
一车间    张三   本科
       李四
       王五   

(所影响的行数为 5 行)

*/

方案二:

select 姓名 into #temp from (
select [单位],max(姓名)as 姓名 from [tab]
group by [单位]
)T

select case when 姓名 in (select * from #temp ) then [单位] else '' end,
		姓名,
		case when 姓名 in (select * from #temp ) then [学历] else '' end
from [tab]

sql不显示重复列,布布扣,bubuko.com

时间: 2024-12-16 12:32:46

sql不显示重复列的相关文章

sql不显示反复列

在报表里,基本上都能够把反复的资料不显示,在SQL里怎么才干做到例如以下情况呢? a 10 a 20 b 30 b 40 b 50 显示为: a 10 20 b 30 40 50 SQL 例如以下: create table #a (part varchar(10),price int) go insert into #a values('a',10) insert into #a values('a',20) insert into #a values('b',30) insert into

多表连接时USING和ON的区别,USING会去掉重复列,ON显示重复列。

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference &#39;*&#39; is ambiguous)

问题 datafrme提供了强大的JOIN操作,但是在操作的时候,经常发现会碰到重复列的问题.在你不注意的时候,去用相关列做其他操作的时候,就会出现问题! 假如这两个字段同时存在,那么就会报错,如下:org.apache.spark.sql.AnalysisException: Reference 'key2' is ambiguous 实例 1.创建两个df演示实例 val df = sc.parallelize(Array( ("yuwen", "zhangsan&quo

sql取出某一列不重复数据的ID解决办法

取出某一列不重复数据的ID表A有ID,BID,ITime三列BID可能会有重复的现在要从A表根据ITime降序排序取出ID来,且如果BID重复就只取第一条数据的ID应该如何实现?------解决方案-------------------- 如果id是递增的select min(id),BID,max(date)from tbl group by BID sql取出某一列不重复数据的ID解决办法,布布扣,bubuko.com

sql语句查询重复的数据

查找所有重复标题的记录:SELECT *FROM t_info aWHERE ((SELECT COUNT(*)FROM t_infoWHERE Title = a.Title) > 1)ORDER BY Title DESC一.查找重复记录1.查找全部重复记录Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)2.过滤重复记录(只显示一条)Select * From HZT Whe

杂记_显示重复记录

需求 一个表中可能有N条记录,如何显示重复的记录? SQL> create tablet1 ( 2 id   number, 3  namevarchar2(20) 4  ); Table created. SQL> insert intot1 values(1, '张云'); 1 row created. SQL> insert intot1 values(2, '叶英才'); 1 row created. SQL> insert intot1 values(3, '单立国');

删除DataTable重复列,只针对删除其中的一列重复的行

vs2005针对datatable已经有封装好的去重复方法: 1 //去掉重复行 2 DataView dv = table.DefaultView; 3 table = dv.ToTable(true, new string[] { "name", "code" }); 4 5 此时table 就只有name.code无重复的两行了,如果还需要id值则 6 7 table = dv.ToTable(true, new string[] { "id&quo

SQL Server将一列的多行内容拼接成一行的实现方法

SQL Server将一列的多行内容拼接成一行的实现方法 投稿:mdxy-dxy 这篇文章主要介绍了SQL Server将一列的多行内容拼接成一行的实现方法,需要的朋友可以参考下 下面大家先看下示例代码: 示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称

sql查询去除重复值语句

sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select