Declare @FieldName VarChar(8000)
Set @FieldName=''
Select @FieldName=@FieldName+Name From BExec('Select '+@FieldName+' From A')
//Select @FieldName as ResultA From A
Set @FieldName=''
Select @FieldName=@FieldName+Name From BExec('Select '+@FieldName+' From A')
//Select @FieldName as ResultA From A
set @a=''
select @a=@a+','+name from b表select right(@a,len(@a)-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
endGO
2,
select 编码,dbo. getstr( getstr) as 名称 from a group by 编码
set @re=''
select @re=@re+name from B表--@re就是返回值
set @s=''
select @s=@s+name from TableB
select @s from TableB
以前的帖子中摘的,也许对你有些帮助。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 @YourResultTabledeclare @z varchar(100),@q varchar(2)
select @q = nulldeclare @ProcessTable table (id varchar(2), value varchar(100))
insert @ProcessTable
select id, value from @YourResultTable
order by id, valueupdate @ProcessTable
set @z = value = case @q when id then @z else '' end + value +',' , @q = id
from @ProcessTable
select * from @ProcessTable
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 @YourResultTabledeclare @z varchar(100),@q varchar(2)
select @q = nulldeclare @ProcessTable table (id varchar(2), value varchar(100))
insert @ProcessTable
select id, value from @YourResultTable
order by id, valueupdate @ProcessTable
set @z = value = case @q when id then @z else '' end + value +',' , @q = id
from @ProcessTable
select * from @ProcessTable
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