求一条sql查询语句?(在线等!急急急)

zhoufucai 2007-05-29 02:15:40
主表a有两个字段sn , name;从表id ,sn ,Question;主表每天记录在从表中有多条记录相对应以sn 关联,我要的结果是每个sn 对应的Question都用逗号分隔显示。
sn Question
100 aaaa,bbbb,cccc
101 rrrr,eeeee,ddddd
...全文
288 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoufucai 2007-05-29
  • 打赏
  • 举报
回复
问题解决了,多谢兄弟们,散分!!!
pt_caddy 2007-05-29
  • 打赏
  • 举报
回复
学习了
sbqcel 2007-05-29
  • 打赏
  • 举报
回复
create function myFunction(@sn int)
returns varchar(8000)
as
begin
declare @rtValue varchar(8000)
set @rtValue = ''
select @rtValue = @rtValue +questtion + ',' from table2 where sn=@sn
if(substring(rtrim(@rtValue),len(rtrim(@rtValue)),1) = ',')
begin
set @rtValue = substring(@rtValue,1,len(rtrim(@rtValue))-1)
end
return @rtValue
end
不错;谢谢提醒~~
Jinglecat 2007-05-29
  • 打赏
  • 举报
回复
@sbqcel(活死人)

耶,建个函数不错,学到老,还以为要用游标呢,

只是,好像 return 之前要判断是否需要去掉最后一个 ,

IF LEN(@rtValue) > 0
SET @rtValue = LEFT(@rtValue, LEN(@rtValue) - 1)
sbqcel 2007-05-29
  • 打赏
  • 举报
回复
上面的参考参考...创建函数的时候把alter 换为create,别忘记删除表和函数
sbqcel 2007-05-29
  • 打赏
  • 举报
回复
create table table1
(
sn int
)

create table table2
(
sn int,
questtion varchar(100)
)

insert into table1 values(100)
insert into table1 values(101)

insert into table2 values(100,'aaa')
insert into table2 values(100,'bbb')
insert into table2 values(100,'ccc')
insert into table2 values(101,'rrr')
insert into table2 values(101,'eee')
insert into table2 values(101,'ddd')

alter function myFunction(@sn int)
returns varchar(8000)
as
begin
declare @rtValue varchar(8000)
set @rtValue = ''
select @rtValue = @rtValue +questtion + ',' from table2 where sn=@sn
return @rtValue
end

select sn,dbo.myFunction(sn) from table1
Jinglecat 2007-05-29
  • 打赏
  • 举报
回复
啊,不好意思,这样才对,SQL Server 版本,其他版本原理一样,只是字符串函数可能不一样

DECLARE @Q varchar(8000)
SET @Q = ''
SELECT @Q = Question + ',' + @Q FROM 从表 WHERE sn=....
IF LEN(@Q) > 0
SET @Q = LEFT(@Q, LEN(@Q) - 1)
PRINT @Q

好像只满足了一条记录,等我想想如何返回所有记录~
zhoufucai 2007-05-29
  • 打赏
  • 举报
回复
用的数据库为sql 2000,兄弟们急啊,能写清楚点吗?谢谢!!
Jinglecat 2007-05-29
  • 打赏
  • 举报
回复
使用递归 SELECT 变量

DECLARE @Q varchar(8000)
SELECT @Q = @ + Question FROM 从表 WHERE sn = .....
PRINT @Q
Eray 2007-05-29
  • 打赏
  • 举报
回复
什么数据库啊?
DB2是
select (fi1 || ','|| fi2)as fields from yourtable

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧