在报表里,基本上都能够把反复的资料不显示,在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不显示反复列的更多相关文章

  1. SQL复制远程数据库数据到本地-及查询结果少显示一列

    网上找了查询结果怎么少显示一列,因为数据很多列,结果不是视图就是嵌套,太麻烦,这里用临时表做 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB', '19 ...

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

    代码如下: public class DXGridControlHelper { /// <summary> /// 获取显示指定列的GridView /// </summary&g ...

  3. SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF

    原文:SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF 本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然 ...

  4. SQL中进行转列的几种方式

    SQL中进行转列 在很多笔试的程序员中会有很多写SQL的情况,其中很多时候会考察行转列.那么这个时候如果能写出来几种行转列的SQL,会给面试官留下比较好的印象. 以下是这次sql转换的表结构以及数据 ...

  5. mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释

    1,mysql数据库导出模型到powerdesigner 2,CRL+Shift+X 3,复制以下内容,执行 '******************************************** ...

  6. Easyui datagrid 显示隐藏列

    html:         <div style="float: left; width: 1450px; height:auto;  ">             & ...

  7. pentaho cde 选择性的显示多列数据

    在业务需求中,有时候会有这种需要,就是查出来可多列数据,而我只想画出来其中的一列或者说某一列,而pentaho会默认画出查出来的所有数据,而不断的更改数据源又太麻烦,这时就要用到resders方法了. ...

  8. [转]java.sql.SQLException: 无效的列索引

    原文地址:http://blog.sina.com.cn/s/blog_6bc811e401011a17.html java.sql.SQLException: 无效的列索引 “无效的列索引”其实是个 ...

  9. java.sql.SQLException: 无效的列索引

    java.sql.SQLException: 无效的列索引 "无效的列索引"其实是个低级的错误,原因无非几个: 1.sql串的?号数目和提供的变量数目不一致: 例如:jdbcTem ...

随机推荐

  1. 【BZOJ2806】【CTSC2012】Cheat 广义后缀自动机+二分+Dp

    题目 题目在这里 思路&做法 我们先对标准作文库建广义后缀自动机. 然后对于每一篇阿米巴的作文, 我们首先把放到广义后缀自动机跑一遍, 对于每一个位置, 记录公共子串的长度\((\)即代码和下 ...

  2. Linux 定时任务 Crontab按秒执行

    目前在crontab中最小执行时间单位为分钟. 如果需要按秒来执行,有以下两种方法: 方法一:通过sleep来实现 例: 1.创建test.php文件,这里测试通过打印时间好区分. <?php ...

  3. 23. Merge k Sorted Lists[H]合并k个排序链表

    题目 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity ...

  4. Selenium之当鼠标悬浮时隐藏的元素才出现

    在自动化过程中,有些导航按钮只有当鼠标悬浮在登录信息上时,它才能出现.这时候如果想要点击导航按钮直接用selenium的webDriver是无法定位的元素的,因为这些元素是隐藏的,只有鼠标悬浮时才出现 ...

  5. QlikSense移动端使用攻略

    公司内部署QlikSense服务器,除了在电脑上用浏览器访问,也可以在移动端进行访问. 移动端访问在如下网址有英文详细介绍:https://community.qlik.com/docs/DOC-19 ...

  6. php 微信支付 回调通知不停的坑

    微信支付已完工,最后有点小问题就是微信的回调会重复9次 第一步: $return = "success"; echo $return; 不管用 第二步: $return = &qu ...

  7. os.clock()导致的bug

    os.clock () 功能:返回一个程序使用CPU时间的一个近似值 最近做了一个功能,这个功能需要统计时间间隔,例如每隔0.5秒做一次调用. 我用了os.clock()去统计时间,结果在pc机上都没 ...

  8. 第4章 部署模式 Deployment Plan(部署规划)

    已开发了基于组件的应用程序,该应用程序在逻辑上构造为多层结构,如 Three-Layered Services Application. 中所述.您希望将它分布到一组在物理上为多级结构的服务器上,如 ...

  9. url 域名 主机名

    1. url = 协议//主机名(包括服务器的计算机名+域名)/路径 https:// i. cnblogs.com /index.html .com是顶级域名,从右向左,每碰到一个".&q ...

  10. MFC多标签页对话框

    原文链接(有修改):http://blog.sina.com.cn/s/blog_6a1cdb3f0101llcw.html 1.新建一个MFC工程 取名PageSheet,选择Dialog base ...