select a.栏目名称,b.员工姓名 
from menu as a, employee as b 
where a.负责人=b.ID

解决方案 »

  1.   

    去数据库区问问吧,
    不过说实话,
    chnama() 说的没错!
      

  2.   

    一句sql应该是不行,
    你可以在sql中写个自定义函数来分析你的负责人,
    然后再用一句sql语句通过调用函数来列出数据。
      

  3.   

    第一个表没有设计好,不过还是能够用一条sql语句实现的
    1、首先创建一个sql函数:
    --函數,在查询分析器中运行下面代码
    create function dbo.getname(@a varchar(200))
    returns varchar(200)
    as 
    begin
    declare @name varchar(200),@m1 integer,@m2 integer,@m3 integer,@id1 varchar(10),@id2 varchar(10),@id3 varchar(10),@name1 varchar(50),@name2 varchar(50),@name3 varchar(50)
    set @m1=CHARINDEX(',',@a,1)--得到第一个,的位置
    set @m2=CHARINDEX(',',@a,@m1+1)--得到第二个,的位置
    set @id1=substring(@a,1,@m1-1)--负责人中的第一个id
    set @id2=substring(@a,@m1+1,@m2-@m1-1)--负责人中的第二个id
    set @id3=substring(@a,@m2+1,len(@a)-@m2)--负责人中的第三个id
    select @name1=[员工姓名] from employee where id=@id1
    select @name2=[员工姓名] from employee where id=@id2
    select @name3=[员工姓名] from employee where id=@id3
    set @name=@name1+','+@name2+','+@name3
    return (@name)
    end2、然后一条sql语句解决
    select [栏目名称],dbo.getname([负责人]) from menu 已经调试过了,楼主,给分啊!
      

  4.   


    create table menu(欄目名稱  varchar(30),負責人 varchar(100))
    insert into menu values('技術特區','33,22,23')create table employee(ID int,員工姓名 varchar(10))
    Insert into employee 
    select 22,'張三'
    union all select 23,'李四'
    union all select 33,'王五'select * from menu
    select * from employee--函數
    create function dbo.fn_n(@vchstring varchar(1000))
    returns varchar(1000)
    as
    begin
    declare @intstart int,@intlocation int 
    declare @s varchar(1000),@vchsubstring varchar(100) if right(@vchstring,1)<>',' set  @vchstring=@vchstring+',' select @intstart =1,@s='' 
    select @intlocation = charindex(',',@vchstring,@intstart) 
    while (@intlocation <>0 ) 
    begin 
    select @vchsubstring=substring(@vchstring,@intstart,@intlocation-@intstart)
    select @s=@s+員工姓名+',' from employee where ID=@vchsubstring
    select @intstart = @intlocation +1 
    select @intlocation = charindex(',',@vchstring,@intstart) 
    end 
    return(left(@s,len(@s)-1))
    end--刪除
    drop table menu
    drop table employee
    drop function dbo.fn_n
    --結果
    select 欄目名稱,負責人= dbo.fn_n(負責人) from menu 欄目名稱             負責人
    ---------------------------------------------
    技術特區 王五,張三,李四