表table1的字段ID和table2的字段ID相关联。table2里可能查询出几条记录,现在想把所有从table2里查询出来的记录合并到一条记录里,这样的SQL语句怎么写呢?
例如
table1
ID
1table2
ID city
1 beijing
1 shanghai要达到的效果是city
beijing、shanghai中间还要加顿号
这样的要求SQL语句能能实现啊
例如
table1
ID
1table2
ID city
1 beijing
1 shanghai要达到的效果是city
beijing、shanghai中间还要加顿号
这样的要求SQL语句能能实现啊
解决方案 »
- dephi 字符串怎么转化为中文
- 有带复选框的树形控件吗?
- ACTIVX 控件的问题
- 如何用Indy的HTTPServer接受文件上传?
- 想找一个c/s结构的进销存系统原代码,哪位有啊,帮帮我吧
- FlatButton怎么能加入其它格式的图片!!!
- 为什么用GetWindowText不能获取得文本框的内容
- Delphi与VB谁的调试更方便????
- 有关子窗体BorderStyle的问题
- 请问:如何解决关于263.net等Email提供商增设的“smtp认证”功能?
- 简单的打包问题???
- 如何发布ASA(Adaptive Server Anywhere 6.0)数据库的程序(指不需安装ASA,只发布一个dbeng6.exe文件或其它很少的文件)并且在Delphi中怎
真的就没有办法实现吗?
select table2.city from table1,table2 where table1.id=table2.id
--先建与table2结构相同的临时表tmp_tab
--其中tmp_tab的city字段设为varchar类型create procedure test
as
declare @id_no char(10)
declare @vcity varchar(10)
declare @tcity varchar(100)
--定义游标
Declare cur1 cursor for
select ID
from table1 OPEN cuR1
WHILE (@@FETCH_STATUS = 0)
BEGIN
FETCH NEXT FROM cur1
INTO @id_no Declare cur2 cursor for
select city
from table2
where ID=@id_no
select @tcity=''
OPEN cur2
WHILE (@@FETCH_STATUS = 0)
BEGIN
FETCH NEXT FROM cur2
INTO @vcity
if (@tcity='') and (@vcity<>'')
begin
select @tcity=@vcity
select @vcity=''
end
else if @vcity<>''
select @tcity=@tcity+'、'+@vcity
END
CLOSE cur2
DEALLOCATE cur2
if @tcity<>''
insert tmp_tab(ID,city) values(@id_no,@tcity)
END
CLOSE cur1
DEALLOCATE cur1
GO
set @S=''
select @S=@S +b.col+'、' from table1 a left join table2 b on a.id=b.id
set @S=Left(@S,len(@S)-1)
select @S
不好意思,刚刚结帖了,如果我试过你的也可以,另外开帖补上!!谢谢!!