2014年4月1日 星期二

MSSQL 群組字串連結 (自訂函數)

參考引用來源:[SQL] 群組字串連結
--
IF OBJECT_ID(N'dbo.getCommaString', N'FN') IS NOT NULL
    DROP FUNCTION dbo.getCommaString

-- 建立 FUNCTION
CREATE FUNCTION getCommaString(@date datetime)
RETURNS varchar(500)  --500若不夠,請加大
BEGIN
    DECLARE @string varchar(500)  --500若不夠,請加大
    SET @string = ''
 
    SELECT @string = @string + EmpName + ','
    FROM Leave
    WHERE Date = @date
    ORDER BY EmpName
 
    SET @string = LEFT(@string,LEN(@string)-1) -- 把最後面的逗號後刪除
    RETURN @string
END

-- 使用自定函數來進行字串連結
SELECT
     CONVERT(char(10),Date,120) AS [日期],
     DATENAME(dw,Date) AS [星期],
     dbo.getCommaString(Date) AS [請假人員]
FROM Leave
GROUP BY Date

沒有留言:

張貼留言