首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求两个联系关系后的结果

2013-08-06 
求两个关联后的结果a表idnameage1张三182李四19b表iduidgirlfreadname11翠花21凤姐32石榴姐42芙蓉姐姐要求

求两个关联后的结果
a表
id   name  age
1     张三  18
2     李四  19
b表
id    uid   girlfreadname
1      1       翠花
2      1       凤姐
3      2       石榴姐
4      2       芙蓉姐姐

要求查询结果
张三  18    翠花,凤姐
李四  19     石榴姐,芙蓉姐姐

a表的id和b表的uid关联。
[解决办法]
SQL2000示例:

if not object_id('Tab') is null
    drop table Tab
Go
Create table Tab([Col1] int,[Col2] nvarchar(1))
Insert Tab
select 1,N'a' union all
select 1,N'b' union all
select 1,N'c' union all
select 2,N'd' union all
select 2,N'e' union all
select 3,N'f'
Go
 
合并表:
 
SQL2000用函数:
 
go
if object_id('F_Str') is not null
    drop function F_Str
go
create function F_Str(@Col1 int)
returns nvarchar(100)
as
begin
    declare @S nvarchar(100)
    select @S=isnull(@S+',','')+Col2 from Tab where Col1=@Col1
    return @S
end
go
Select distinct Col1,Col2=dbo.F_Str(Col1) from Tab

热点排行