Oracle
 sql >> база данни >  >> RDS >> Oracle

SQL Server еквивалент на функцията WM_CONCAT

Нямате еквивалентна функция за това, но все пак можете да симулирате (използвайте 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle getConnection бавно

  2. Обработка на изключения за пакетно вмъкване на JDBC

  3. Инсталирайте Oracle SQL Developer 19.1 на Mac OS с JDK 8

  4. Проверете ограничение, извикване на функция Oracle SQL разработчик

  5. как да променя съществуващо ограничение за проверка?