create table student(Id int,姓名 varchar(10),年龄 varchar(10))
insert into student values(1,'A','b')
insert into student values(2,'B','c')create table interest(ID int,学生Id int,兴趣 varchar(10))
insert into interest values(1,1,'d')
insert into interest values(2,1,'e')
gocreate function f_str(@stu_id int)
returns varchar(20)
as
begin
    declare @str varchar(20)
    set @str=''
    
    select @str=@str+','+兴趣 from interest where 学生ID=@stu_id
    
    set @str=stuff(@str,1,1,'')
    
    return @str
end
goselect *,dbo.f_str(ID) as 兴趣 from student
/*
Id          姓名       年龄        兴趣                   
----------- ---------- ---------- -------------------- 
1           A          b          d,e
2           B          c          NULL
*/
godrop function f_str
drop table student,interest
go

解决方案 »

  1.   

    多谢playwarcraft(时间就像乳沟,挤挤还是有的) 和libin_ftsafe(子陌红尘:当libin告别ftsafe) 两位就是libin_ftsafe的我不大看的懂,没用过sql-server,
    我现在其实是用vc和ado开发,用的是access
    我只想要在用vc的时候方便一点,
    请各位大侠帮我看看这个数据库的表该怎么设计?
      

  2.   

    我是要做一个电梯控制器的数据库
    这个电梯控制器,给了我23个属性,其中有18个是多选的
    比如:
    控制类型:有货梯,客梯,扶梯等种类,因为有的控制器可以控制货梯,有的控制客梯,有的客货两用。
    驱动方式:交流变频,GMV,布赫泵 ……
    控制方式:单梯,并联,群控……每个控制器的这些属性都是要多选的请各位帮忙啊,就帮我看看这个数据库怎么设计表。
    因为看到这里有人气,就来了…………呵呵,用的是access,vc,ado
      

  3.   

    accsee的話,可能用第2個方式比較好操作,表 学生:
    Id        姓名    年龄
    1         A       b
    2         B       c  表 兴趣:
    ID       学生Id   兴趣
    1        1        d
    2        1        e