qq_34147601
MaQuanXin
采纳率66.7%
2021-02-25 11:01

SQLserver创建视图时报错,使用了for xml path

5
已结题

  • 点赞
  • 收藏
  • 复制链接分享

3条回答

  • bill20100829 歇歇 2月前

    或者

    SELECT a.id 学号,(a.name) 姓名,(a.sex) 性别,

    科目= stuff((SELECT   '/'+ b.Subject FROM Subject b WHERE b.id= a.id FOR xml path ('')) ,1, 1,'')

    from Student a 

    如有多行加这一句

    group by a.id,a.name,a.sex

    点赞 评论 复制链接分享
  • bill20100829 歇歇 2月前

    你这查询设计不合理,设计一个函数,id做参数,返回科目。

    1-建立函数

    CREATE FUNCTION dbo.func_Get_student_subjects(@id varchar(10)) 
    RETURNS varchar(8000)   --返回返回值的数据类型
    as
    BEGIN
        declare @result_name varchar(8000)
        select @result_name=''
        select  @result_name =@result_name+case when @result_name='' then '' else '/' end+ trim(subject) from subject where id= @id
      RETURN  @result_name
    End

    2-查询

    SELECT DISTINCT(a.id) as 学号,(a.name) as 姓名,(a.sex) as 性别,

    dbo.func_Get_student_subjects( a.id) as 科目

    from Student

    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 2月前

    没关系的,不用理这个错误,分析器的问题,继续就行了。可以当做正常视图来用,我这里2008的ssms提示的忽略,不是继续。

     

    点赞 评论 复制链接分享