sql >> Databasteknik >  >> RDS >> Oracle

SQL Server-motsvarighet till WM_CONCAT-funktionen

Du har inte en motsvarande funktion för det, men du kan fortfarande simulera (använd CROSS APPLY och FOR XML PATH('') ). exempel,

USERID  ADDRESSLINE1
==========================
1       First Street
1       Second Street
2       32th Street
2       24th Street
2       25th Street

kommer att resultera

USERID  ADDRESSLIST
============================
1       First Street, Second Street
2       32th Street, 24th Street, 25th Street

Använder denna fråga:

SELECT  a.UserID, 
        SUBSTRING(d.Addresses,1, LEN(d.Addresses) - 1) AddressList
FROM
        (
            SELECT DISTINCT UserID
            FROM tableName
        ) a
        CROSS APPLY
        (
            SELECT [AddressLine1] + ', ' 
            FROM tableName AS B 
            WHERE A.UserID = B.UserID 
            FOR XML PATH('')
        ) D (Addresses) 

SQLFiddle Demo




  1. Hur redigerar man snabbt värden i tabell i SQL Server Management Studio?

  2. n:te percentilberäkningar i postgresql

  3. Är mysql_insert_id säkert att använda?

  4. Fundamentals of tabelluttryck, del 12 – Inline tabellvärderade funktioner