简述:
两行文字,存储在不同的记录中,如何用 SQL 来进行合并哪?本文叙述了上述问题的解决方法。
但是请注意,SQL 语句并不适用于本次情况。建议不要用本方法来实现文字的合并。
问题:
如何通过 sql解决下列问题?
dq(地区) xm(姓名)
A 张三
A 李四
B 王五
B 王六
B 王七
C 王九
我想做一个视图转换成
dq xm
A 张三,李四
B 王五,王六,王七
C 王九
回答:
第一,这根本是一个错误的问题,请记住SQL的应用范围
第二,给你一个能够实现该问题的傻方法(不推荐)
在ACCESS模块里写函数
基本程序如下
Public Function return_sl(dq As String) As String 'dQ为社区名称
Dim sr As String '声明一个整型变量
Set db = CurrentDb() '指定数据库为当前数据库
Set recname = db.OpenRecordset("select * from 表A where sqmc='" + dq + "'") '将对应地区“XM”表读入记录集
Set strname = recname![mjxm] '指定记录集“姓名字段”
Do Until recname.EOF
sr = sr + " " + strname
recname.MoveNext
Loop
return_sl = sr
recname.Close
End Function
然后在Select语句直接调用
select dq,return_sl(dq) as xm from 表A GROUP BY DQ
就行了
方法二
相关方法在adp(sql server)中也行得通
create function getstr(@content int)
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(字符列) from 你的表 where p_seq=@content
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go
--调用:
select p_seq,dbo.getstr(p_seq) f0002,count(*) num1 from 你的表 group by p_seq