zoukankan      html  css  js  c++  java
  • Sql的自定义聚合函数,挺费劲。

    想实现把字符串合并的聚合函数。关键是在视图中不能定义变量(在函数中可以定义变量)。不能进行复杂的多语句操作。

    但也有解决方案 见: http://www.cnblogs.com/yiyanxiyin/archive/2008/09/28/1230524.html

    一条语句出结果,挺费劲,我的实现。

    CREATE TABLE [dbo].[PowerAction](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Action] [varchar](50) NULL,
    [ControllerID] [int] NULL,
    CONSTRAINT [PK_RoleAction] PRIMARY KEY CLUSTERED
    (
    [ID] ASC
    )
    ON [PRIMARY]
    )
    ON [PRIMARY]

    GO


    CREATE TABLE [dbo].[PowerButton](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [ActionID] [int] NULL,
    [Button] [varchar](50) NULL,
    CONSTRAINT [PK_RoleButton] PRIMARY KEY CLUSTERED
    (
    [ID] ASC
    )
    ON [PRIMARY]
    )
    ON [PRIMARY]

    GO

    SELECT *
    FROM(
    select distinct a.ID ,a.[Action]
    from PowerAction as a
    left join PowerButton as b on (b.actionid = a.id)

    ) t
    OUTER APPLY(
    SELECT
    [Button]= STUFF(REPLACE(REPLACE(
    (
    select isnull(b.Button,'') as Button
    from PowerAction as a
    left join PowerButton as b on (b.actionid = a.id)

    WHERE a.id = t.id
    FOR XML AUTO
    ),
    '<a Button="', ','), '"/>', ''), 1, 1, '')
    )N

    表值函数定义方法:

    create function test(@i int )
    returns @retVal table(id int ,val varchar(3000) )
    as
    begin
    select * from @retVal ;
    return ;
    end ;

    alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

      如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
  • 相关阅读:
    迭代模型
    螺旋模型
    瀑布模型
    V模型
    codeforces411div.2
    专题1:记忆化搜索/DAG问题/基础动态规划
    Python
    字符串的相关操作方法
    Python基本数据类型
    编码
  • 原文地址:https://www.cnblogs.com/newsea/p/1802415.html
Copyright © 2011-2022 走看看