不知道能不能实现这样的功能
select a.jq_id,b.jq_content,c.jd_name from hezuo_jq a,hulian_jq_info b,hulian_jq_jd c where a.jq_id = b.jq_id and a.jq_id = c.jq_id
查询到的结果是:
jq_id | jq_content | jd_name
98 | 寿州窑遗址 | 马祖庵
98 | 寿州窑遗址 | 神秘谷
98 | 寿州窑遗址 | 石牛古洞
98 | 寿州窑遗址 | 天柱峰
137 | 雾灵湖 | 化城寺
137 | 雾灵湖 | 甘露寺
.. | ... | ...
前台程序循环显示样式
景区id 景区 景点
98 寿州窑遗址 马祖庵 神秘谷 石牛古洞 天柱峰
--------------------------------------------
98 雾灵湖 化城寺 甘露寺
----------------------------------
上面的sql语句在程序中这样显示好像有点困难,我想能不能把同一个js_id下的多条jd_name记录在sql里转化到一个字段
例如这样:
jq_id | jq_content | jd_name
98 | 寿州窑遗址 | 马祖庵,神秘谷 ,石牛古洞,天柱峰
137 | 雾灵湖 | 化城寺,甘露寺
不知道能不能实现 如果可以的话请指教下
------解决方案--------------------Create Function F_Get_jd_name(@jq_id Int)
Returns Nvarchar(4000)
As
Begin
Declare @S Nvarchar(4000)
Select @S = ' '
Select @S = @S + ', ' + jd_name From hulian_jq_jd Where jq_id = @jq_id
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End
GO
select a.jq_id,b.jq_content,dbo.F_Get_jd_name(jq_id) AS jd_name from hezuo_jq a,hulian_jq_info b where a.jq_id = b.jq_id
group by a.jq_id,b.jq_content
------解决方案--------------------create function dbo.fn_Merge(@jq_content varchar(1000))
returns varchar(8000)
as
begin
declare @name varchar(8000)
set @name= ' '
select @name=@name+ ', '+jd_name from test where jq_content=@jq_content
return stuff(@name,1,1, ' ')
end
go
create table test(jq_id int,jq_content varchar(50),jd_name varchar(50))
insert test select 98, '寿州窑遗址 ', '马祖庵 '
union all select 98, '寿州窑遗址 ', '神秘谷 '
union all select 98, '寿州窑遗址 ', '石牛古洞 '
union all select 98, '寿州窑遗址 ', '天柱峰 '
union all select 137, '雾灵湖 ', '化城寺 '
union all select 137, '雾灵湖 ', '甘露寺 '
select distinct jq_content,dbo.fn_Merge(jq_content) from test