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]
时间: 2024-08-07 00:15:14

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 #a v

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

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

Devexpress datagrid动态添加显示指定列的gridView

代码如下: public class DXGridControlHelper { /// <summary> /// 获取显示指定列的GridView /// </summary> /// <param name="grid"></param> /// <param name="columns">列集合</param> /// <returns></returns> pu

通过LINQ TO SQL类显示数据库表的数据

1.数据库操作:首先在数据库创建一张简单的表SPJ 2.新建一个ASP.NET空网站 3.新建一个Web窗体,命名为ShowData.aspx 在源码界面添加两个控件:Button控件和Gridview控件 <div> <asp:Button ID="BtnShow" runat="server" Text="单击显示Gridview表" OnClick="BtnShow_Click" /> <a

sql server拼接一列字段

有一表,名曰IPSlot,欲取IP整列字段. sql语句,利用sql server的xml auto将表数据转换成xml=> 1 select name= 2 STUFF( 3 REPLACE( 4 REPLACE((select IP from IPSlot for xml auto), '<IPSlot IP="', '/') 5 , '"/>', '') 6 , 1, 1, '') 效果=> 关于stuff关键字用法示例=> 1 SELECT STU

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 server显示行号

-- 工具->--   选项->--   文本编辑器-> --   所有语言->--   常规-> --   显示->--    行号 sql server显示行号,布布扣,bubuko.com

SQL ID自增列从1开始重新排序

开发了android程序就知道,原生的模拟器启动比较慢,还会出现莫名的问题,这边介绍另外一种模拟器: BlueStacks:BlueStacks是一个可以让Android 应用程序运行在Windows系统(目前,该公司再次宣布推出Mac版Bluestacks模拟器.)上的软件,由BlueStacks公司推出.BlueStacks新版本App Player采用名为Layercake的技术,可以让针对ARM处理器开发的安卓应用运行在基于x86处理器的PC或者平板上,而且可以调用PC的显卡,能提供比A

针对 jQuery Gridly 控件显示多少列的问题。

针对 jQuery Gridly 控件显示多少列的问题,完全根据 columns 的值来显示. 但是显示columns,并不是给多少值显示几列.到目前还是很模糊的.官方文档没有给出具体的一个解释. $('.gridly').gridly({ base: 60, // px gutter: 20, // px columns: $("#FormColumnCount").val() * 3, callbacks: { reordered: function ($elements) { /