假设有A、B两表。B表中有一列叫Name,我想在一条Select语句中实现把B表中所有的Name拼成一个字符串,作为A表的一个字段返回。怎样实现?

bin_bin 2003-07-21 10:15:43
假设有A、B两表。B表中有一列叫Name,我想在一条Select语句中实现把B表中所有的Name拼成一个字符串,作为A表的一个字段返回。怎样实现?
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjb111 2003-07-21
  • 打赏
  • 举报
回复
declare @s varchar(8000)
set @s=''
select @s=@s+name from TableB
select @s from TableB
txlicenhe 2003-07-21
  • 打赏
  • 举报
回复
agree with CrazyFor(上苍保佑吃完了饭的人民)
zjcxc 元老 2003-07-21
  • 打赏
  • 举报
回复
declare @re varchar(8000)
set @re=''
select @re=@re+name from B表

--@re就是返回值
CrazyFor 2003-07-21
  • 打赏
  • 举报
回复
1,
create function getstr(@id Nchar(4000))
returns Nvarchar(4000)
as
begin
declare @str Nvarchar(2000)
set @str=N''
select @str=@str+rtrim(bill)+N',' from b
where 编码=@id
if @str<>N''
set @str=left(@str,len(@str)-1)
return @str
end

GO
2,
select 编码,dbo. getstr( getstr) as 名称 from a group by 编码
pengdali 2003-07-21
  • 打赏
  • 举报
回复
declare @a varchar(8000)
set @a=''
select @a=@a+','+name from b表

select right(@a,len(@a)-1)
97866 2003-07-21
  • 打赏
  • 举报
回复
Declare @FieldName VarChar(8000)
Set @FieldName=''
Select @FieldName=@FieldName+Name From B

Exec('Select '+@FieldName+' From A')
//Select @FieldName as ResultA From A
pengdali 2003-07-21
  • 打赏
  • 举报
回复
举例:

1、TABLE1 字段I,字段O
2、TABLE2 字段I,字段H
3、TABLE3 字段H,字段N
要求:
根据TABLE1 字段I去读TABLE2 字段H再去读TABLE3字段N
再将相同I的N字段连接起来[因为是字符]作为一个新的字段M
TABLE1 与TABLE2 的关系是一对多;

create table table_1 ( i int , o int)
create table table_2 ( i int , h int)
create table table_3 ( h int , m varchar(4))

create function get_n (@i int)
returns varchar(800)
as
begin
declare @str varchar(800)
select @str =''
select @str =@str + table_3.m from table_2 ,table_3 where table_2.i=@i and table_2.h = table_3.h
return @str
end


select i,dbo.get_n(i) from table_1
yangvxin1 2003-07-21
  • 打赏
  • 举报
回复
贴的以前的帖子的内容,希望对你有帮助。
set nocount on
declare @YourResultTable table (id varchar(2), value varchar(10))
insert @YourResultTable values('1', 'cool')
insert @YourResultTable values('1', 'nice')
insert @YourResultTable values('1', 'wow')
insert @YourResultTable values('2', 'cool')
insert @YourResultTable values('2', 'wow')
insert @YourResultTable values('4', 'nice')
insert @YourResultTable values('6', 'cool')
insert @YourResultTable values('6', 'nice')

select * from @YourResultTable

declare @z varchar(100),@q varchar(2)
select @q = null

declare @ProcessTable table (id varchar(2), value varchar(100))
insert @ProcessTable
select id, value from @YourResultTable
order by id, value

update @ProcessTable
set @z = value = case @q when id then @z else '' end + value +',' , @q = id
from @ProcessTable
select * from @ProcessTable
yangvxin1 2003-07-21
  • 打赏
  • 举报
回复

以前的帖子中摘的,也许对你有些帮助。

set nocount on
declare @YourResultTable table (id varchar(2), value varchar(10))
insert @YourResultTable values('1', 'cool')
insert @YourResultTable values('1', 'nice')
insert @YourResultTable values('1', 'wow')
insert @YourResultTable values('2', 'cool')
insert @YourResultTable values('2', 'wow')
insert @YourResultTable values('4', 'nice')
insert @YourResultTable values('6', 'cool')
insert @YourResultTable values('6', 'nice')

select * from @YourResultTable

declare @z varchar(100),@q varchar(2)
select @q = null

declare @ProcessTable table (id varchar(2), value varchar(100))
insert @ProcessTable
select id, value from @YourResultTable
order by id, value

update @ProcessTable
set @z = value = case @q when id then @z else '' end + value +',' , @q = id
from @ProcessTable
select * from @ProcessTable

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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