sql >> データベース >  >> RDS >> Oracle

WM_CONCAT関数に相当するSQLServer

    これに相当する機能はありませんが、シミュレートすることはできます(CROSS APPLYを利用してください)。 およびFOR XML PATH('') )。例、

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

    結果になります

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

    このクエリの使用:

    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デモ




    1. MySQLでのOCT()関数のしくみ

    2. AWSRDSでのMySQLデータベースおよびOracleデータベースでのJDeveloperの使用パート3

    3. SQL ServerのDATETIMEタイプで、1/300秒の目盛りで時間を節約できるのはなぜですか?

    4. 列ストアプラン