CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

Sql的查询显示问题,多条记录只显示一次,我用的是asp开发。有劳各位高手了!

楼主raychiu(绝世好欣)2005-04-30 10:30:04 在 Web 开发 / ASP 提问

例如  
  姓名       选修科目  
  小明       语文  
  小明       数学  
  小李       英语  
  小李       化学  
   
   
  显示的时候  
  小明       语文   数学   英语   (如果中间能有空格就更好)  
  小李       英语   化学 问题点数:100、回复次数:10Top

1 楼leeboyan(宝宝)回复于 2005-04-30 10:40:48 得分 20

给个例子:  
  要求  
  -----------------  
  原表:表1  
  xm                 zw  
  甲               校长  
  甲               主任  
  乙               副校长  
  乙               副主任  
  乙               办主任  
  =====================================  
  查询结果应该是:  
  xm                 zw  
  甲               校长,主任                
  乙               副校长,副主任,办主任  
   
   
  -----正式---------  
  --测试:  
  create   table   表A(xm   varchar(10),zw   varchar(10))  
  insert   into   表A   select   '甲','校长'  
  insert   into   表A   select   '甲','主任'  
  insert   into   表A   select   '乙','副校长'  
  insert   into   表A   select   '乙','副主任'  
  insert   into   表A   select   '乙','办主任'  
  insert   into   表A   select   '丙','办主任'  
  insert   into   表A   select   '定','办主任'  
   
  go  
  --1.创建一个合并的函数  
  create   function   fmerg(@id   varchar(10))  
  returns   varchar(8000)  
  as  
  begin  
  declare   @str   varchar(8000)  
  set   @str=''  
  select   @str=@str+','+zw   from   表A   where   xm=@id  
  set   @str=right(@str,len(@str)-1)  
  return(@str)  
  End  
  go  
   
  --2.调用自定义函数得到结果  
  select   distinct   xm,dbo.fmerg(xm)   as   zw   from   表A  
  drop   table     表A  
   
  Top

2 楼leeboyan(宝宝)回复于 2005-04-30 10:41:47 得分 10

把上函数中的',',变成'   '即可Top

3 楼hipop(不怕慢,就怕站;站一站,二里半)回复于 2005-04-30 10:45:42 得分 10

学习!Top

4 楼xiaomeixiang(小山羊:))回复于 2005-04-30 10:46:39 得分 10

create   table   table1(姓名   varchar(50),       选修科目     varchar(50))  
  insert   table1   values('小明',       '语文')  
  insert   table1   values('小明'   ,     '数学')  
  insert   table1   values('小李'     ,   '英语')  
  insert   table1   values('小李'       ,'化学')  
   
  create   table   #table1(姓名   varchar(50),       选修科目     varchar(200))  
  insert   into   #table1   select   姓名,   选修科目   from   table1   order   by   姓名,选修科目  
   
  declare   @姓名   varchar(50),       @选修科目     varchar(200)  
  select   @姓名='',@选修科目=''  
  update   #table1   set   @选修科目=case   when   姓名=@姓名   then   @选修科目+'   '+选修科目   else   选修科目   end  
  ,@姓名=姓名,选修科目=@选修科目  
  select   姓名,max(选修科目)   from   #table1   group   by   姓名  
  drop   table   table1,#table1  
  Top

5 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-04-30 10:50:32 得分 10

select   *   from   table   group   by   姓名Top

6 楼xluzhong(Ralph)回复于 2005-04-30 11:32:27 得分 10

http://blog.csdn.net/xluzhong/articles/349046.aspxTop

7 楼zhuheyang()回复于 2005-04-30 11:50:57 得分 10

set   @str=right(@str,len(@str)-1)  
  改成set   @str=stuff(@str,1,1,'')Top

8 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2005-05-03 16:06:29 得分 10

--建立測試環境  
  create   table   studentQK(name   varchar(50),course   varchar(20))  
  insert   into   studentQK  
  select   '小明',       '语文'   union   all  
  select   '小明',       '数学'   union   all  
  select   '小李',       '英语'   union   all  
  select   '小李',       '化学,  
  --建立測試函數  
  create   function   f_catString(@name   varchar(50)  
  returns   nvarchar(1000)  
  as  
        begin  
            declare   @s   nvarchar(1000)  
            set   @s=''  
            select   @s=@s+'   '+type   from   tb2   where   id=@name  
            return(stuff(@s,1,1,''))  
  --   stuff('string',start,length,'string')刪除指定長度的字符并在指定的起始點插入另一組字符  
        end  
  go  
  --调用函数    
  select   id,dbo.f_catString(name)   as   type   from   tb2   group   by   name  
  go  
  --删除测试环境  
  Drop   Table   tb2  
  Top

9 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2005-05-03 16:08:59 得分 10

將tb2改為studentQK  
  因為tb2是我以前測試的一個表  
  Top

10 楼raychiu(绝世好欣)回复于 2005-05-07 15:56:32 得分 0

补充一下我用的是Access数据库Top

相关问题

  • Sql的查询显示问题,多条记录只显示一次,我用的是asp开发。有劳各位高手了!
  • 用ASP开发SQL SERVER时,字段是DateTime型的,insert时,出乱
  • pl/sql 中 delete 记录
  • sql怎样删记录?
  • sql中如何加记录
  • 关于sql查询记录....
  • SQL取记录问题
  • 求助ASP开发工具
  • 北京招聘asp开发
  • 是否用asp开发?

关键词

  • 主任
  • 校长
  • zw
  • 显示
  • 副
  • xm
  • into表a select
  • insert
  • 英语
  • varchar

得分解答快速导航

  • 帖主:raychiu
  • leeboyan
  • leeboyan
  • hipop
  • xiaomeixiang
  • liuxiaoyi666
  • xluzhong
  • zhuheyang
  • Hopewell_Go
  • Hopewell_Go

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo