Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

SQL Server tương đương với hàm WM_CONCAT

Bạn không có một chức năng tương đương cho điều đó, nhưng bạn vẫn có thể mô phỏng (tận dụng CROSS APPLYFOR XML PATH('') ). ví dụ,

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

sẽ kết quả

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

Sử dụng truy vấn này:

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) 

Bản trình diễn 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. Trình tự Oracle không tạo ra số liên tục

  2. KIỂM TRA ràng buộc về ngày sinh?

  3. Câu lệnh FORALL với mệnh đề giá trị-OF Bound trong cơ sở dữ liệu Oracle

  4. Làm thế nào để lấy ngày hiện tại trong PL / SQL?

  5. Chương trình PL / SQL để xóa các bản ghi khỏi bảng