zoukankan      html  css  js  c++  java
  • 表值函数结合合并列值并带参

    实例如下:

    我有一个表;

    ID Name 

    1 wjy

    2 abc

    3 WWW


    第二个表

    ID RoleID MenuID
    1 2 13

    2 2 14

    3 3 15

    4 2 16



    我对第二个表写的个表值函数;

    ALTER FUNCTION [F_MenuID](@RoleID int) 
    RETURNS TABLE 
    AS
    RETURN 
    (
    select RoleID, MenuID=stuff((select ','+rtrim(MenuID) from V1 t where RoleID=t.RoleID for xml path('')), 1, 1, '') 
    from V1 
    where RoleID=@RoleID group by RoleID
    )
    GO


    运行:SELECT * FROM f_MENUID(2)

    可以得到一个表:

    RoleID MenuID
    2 13,14,16



    问题来的:


    现在我想修改一下那个表值函数(同样是带那个RoleID的参数);

    让它可以生成下面这样一张表:

    当我运行时;SELECT * FROM f_MENUID(2)

    返回表(就是第一个表的每条纪录都增加两列;):

    ID Name MenuID RoleID

    1 wjy 13,14,16 2

    2 abc 13,14,16 2

    3 WWW 13,14,16 2

    实现代码如下:

    alter FUNCTION [F_MenuIDs](@RoleID int)  
    RETURNS @t TABLE(id int,name varchar(100),menuid varchar(100),roleid int)
    AS
    begin
    insert into @t
    select b.id,b.name,MenuID=stuff((select ','+rtrim(MenuID) from V1 t where RoleID=t.RoleID for xml path('')), 1, 1, '') 
      ,a.RoleID
    from V1 a,t1 b
    where a.RoleID=@RoleID 
    group by a.RoleID,b.id,b.name
    return
    end
    GO

  • 相关阅读:
    IDEA激活
    Docker安装
    IDEA使用汇总
    tomcat服务器安装
    Java=》volatile的理解
    2020年2月24日09:06:11,Hash散列
    ES的使用
    Python安装技巧
    数据结构与算法Scala
    2019年12月13日_Flume采集数据到kafka配置使用过程
  • 原文地址:https://www.cnblogs.com/wujy/p/2168018.html
Copyright © 2011-2022 走看看