溫馨提示×

如何在SQL Server使用WM_CONCAT

sql
小樊
340
2024-07-21 06:40:56
欄目: 云計算

在SQL Server中,可以使用以下方法來模擬類似于Oracle中的WM_CONCAT函數的功能:

  1. 使用XML PATH
SELECT ID, 
       STUFF((SELECT ', ' + ColumnName 
              FROM TableName t2 
              WHERE t1.ID = t2.ID 
              FOR XML PATH('')), 1, 2, '') AS ConcatenatedColumn
FROM TableName t1
GROUP BY ID;
  1. 使用FOR XML PATH(‘’)和STUFF函數結合
SELECT ID, 
       STUFF((SELECT ', ' + ColumnName 
              FROM TableName t2 
              WHERE t1.ID = t2.ID 
              FOR XML PATH('')), 1, 2, '') AS ConcatenatedColumn
FROM TableName t1
GROUP BY ID;
  1. 使用自定義函數 可以創建一個自定義函數來模擬WM_CONCAT函數的功能,例如:
CREATE FUNCTION dbo.WM_Concat
(
    @ID INT
)
RETURNS VARCHAR(MAX)
AS
BEGIN
    DECLARE @ConcatenatedColumn VARCHAR(MAX)
    
    SELECT @ConcatenatedColumn = COALESCE(@ConcatenatedColumn + ', ', '') + ColumnName
    FROM TableName
    WHERE ID = @ID
    
    RETURN @ConcatenatedColumn
END

然后可以使用該函數來實現類似WM_CONCAT函數的功能:

SELECT ID, dbo.WM_Concat(ID) AS ConcatenatedColumn
FROM TableName
GROUP BY ID;

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女