求一个奇怪的SQL视图语句。个人认为相当复杂。

iwebet 2005-12-31 03:40:30
现有两个表,结构如下。
表1
ID Type
1 |1|3|
2 |2|
3 |4|5|6|

表2
ID Layer Name
1 0 A
2 0 B
3 1 C
4 0 D
5 4 E
6 4 F

请问如何建立一个视图返回如下结果
ID Name
1 A,C,
2 B,
3 D,E,F,
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
子陌红尘 2005-12-31
  • 打赏
  • 举报
回复
create table t1(ID int,Type varchar(20))
insert into t1 select 1,'|1|3|'
insert into t1 select 2,'|2|'
insert into t1 select 3,'|4|5|6|'

create table t2(ID int,Layer int,Name varchar(10))
insert into t2 select 1,0,'A'
insert into t2 select 2,0,'B'
insert into t2 select 3,1,'C'
insert into t2 select 4,0,'D'
insert into t2 select 5,4,'E'
insert into t2 select 6,4,'F'
go


create function f_str(@type varchar(20))
returns varchar(100)
as
begin
select @type=replace(@type,'|'+rtrim(ID)+'|','|'+Name+'|') from t2
set @type=replace(stuff(@type,1,1,''),'|',',')
return @type
end
go

create view v1 as
select ID,Name=dbo.f_str(Type) from t1
go

select * from v1
go

/*
ID Name
----------- --------
1 A,C,
2 B,
3 D,E,F,
*/


drop view v1
drop function f_str
drop table t1,t2
go
My65sky 2005-12-31
  • 打赏
  • 举报
回复
这种查询用函数应该可以解决。
iwebet 2005-12-31
  • 打赏
  • 举报
回复
有人知道么?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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