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

刚才发的贴子打不开,请教一条sql语句

楼主kerywu(kerywu)2006-03-14 09:24:42 在 MS-SQL Server / 基础类 提问

数据:  
  Table1:  
   
  id C1  
  -----------  
  1 cc  
  2 cd  
   
  Table2:  
   
  id TypeIndex  
  -----------------  
  1 1  
  1 2  
  1 3  
   
  Table3:  
  TypeIndex Type  
  -----------------------  
  1 a  
  2 b  
  3 c  
  4 d  
   
  要求获得如下数据:  
   
  id C1 StrType  
  ------------------------  
  1 cc a;b;c  
  2 cd null  
   
  有正解即结贴。请牛人帮忙  
  问题点数:60、回复次数:5Top

1 楼wgsasd311(自强不息)回复于 2006-03-14 09:30:40 得分 30

create   function   f1(@id   int)  
  returns   varchar(4000)  
  as  
  begin  
  declare   @re   varchar(4000)  
  set   @re=''  
  select    
  @re=@re+';'+t3.type  
  from   t1   inner   join   t2   on   t1.id=t2.id  
  inner   join   t3   on   t2.typeindex=t3.typeindex  
  return   stuff(@re,1,1,'')  
  end  
  go  
  select   id,c1,strtype=dbo.f1(id)  
  from   t1Top

2 楼wgsasd311(自强不息)回复于 2006-03-14 09:31:26 得分 0

--try  
  create   function   f1(@id   int)  
  returns   varchar(4000)  
  as  
  begin  
  declare   @re   varchar(4000)  
  set   @re=''  
  select    
  @re=@re+';'+t3.type  
  from   t1   inner   join   t2   on   t1.id=t2.id  
  inner   join   t3   on   t2.typeindex=t3.typeindex  
  where   t1.id=@id  
  return   stuff(@re,1,1,'')  
  end  
  go  
  select   id,c1,strtype=dbo.f1(id)  
  from   t1Top

3 楼wgsasd311(自强不息)回复于 2006-03-14 09:34:08 得分 0

create   function   f1(@id   int)  
  returns   varchar(4000)  
  as  
  begin  
  declare   @re   varchar(4000)  
  set   @re=''  
  select    
  @re=@re+';'+t3.type  
  from     t2   inner   join   t3   on   t2.typeindex=t3.typeindex  
  where   t2.id=@id  
  return   stuff(@re,1,1,'')  
  end  
  go  
  select   id,c1,strtype=dbo.f1(id)  
  from   t1Top

4 楼gaojier1000(V2※高捷)回复于 2006-03-14 09:36:56 得分 30

create   function   f1(@id   int)  
  returns   varchar(4000)  
  as  
  begin  
  declare   @re   varchar(4000)  
  set   @re=''  
  select    
  @re=@re+';'+t3.type  
  from   t1   inner   join   t2   on   t1.id=t2.id  
  inner   join   t3   on   t2.typeindex=t3.typeindex  
  where   t1.id=@id  
  return   stuff(@re,1,1,'')  
  end  
  go  
  select   id,c1,strtype=dbo.f1(id)  
  from   t1  
  Top

5 楼kerywu(kerywu)回复于 2006-03-15 11:05:03 得分 0

虽然这个帖子已经有答案,但为了感谢各位,结贴给分。Top

相关问题

  • SQL语句求助贴
  • SQL 语句(速结贴)
  • 求SQL语句
  • sql语句。
  • sql语句?
  • sql 语句?
  • 求SQL语句
  • ***求SQL语句***
  • sql语句??
  • sql语句

关键词

  • asbegindeclare
  • endgoselect
  • typefrom
  • re
  • strtype
  • typeindex
  • varchar
  • join
  • stuff
  • inner

得分解答快速导航

  • 帖主:kerywu
  • wgsasd311
  • gaojier1000

相关链接

  • SQL Server类图书

广告也精彩

反馈

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