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

Nhóm các cột thành nhiều hàng và Group_concate như MySQL trong SQL Server

Hãy thử điều này:

SELECT  Name, 
CAST(count AS VARCHAR(10)) + ',' + CAST(ProjectID AS VARCHAR(10))
AS Label FROM table1

Kết quả

NAME                   LABEL
----------------------------
Security Services      32,1
Technical Services     32,7
Technical Services     31,2

Xem SQLFiddle này

Nếu bạn muốn nhóm theo Name (Một cái gì đó như Group_Concate trong MySQL) không có bất kỳ phương pháp nào cho nó trong SQL Server. Đó chỉ là một logic đằng sau nó.
Vì vậy, hãy thử điều này:

SELECT  * FROM    (
    SELECT  DISTINCT Name
    FROM    table1
    ) table2
CROSS APPLY
    (SELECT  CASE ROW_NUMBER() 
      OVER(ORDER BY ProjectId) 
      WHEN 1 THEN '' ELSE ': ' END + 
      (CAST(table3.count AS VARCHAR(10)) + ',' 
      + CAST(table3.ProjectID AS VARCHAR(10)) )
    FROM    table1 table3
    WHERE   table3.Name = table2.Name
    ORDER BY ProjectID
    FOR XML PATH ('')
    ) table3(Label)

Vì vậy, kết quả sẽ là

NAME                  LABEL
--------------------------------
Security Services     32,1
Technical Services    31,2: 32,7

Xem SQLFiddle này



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pyodbc.connect () hoạt động nhưng không hoạt động với sqlalchemy.create_engine (). connect ()

  2. Xây dựng mô hình học máy với SQL Server, ML.NET và C #

  3. SQL Server:sử dụng tham số trong TẠO CƠ SỞ DỮ LIỆU

  4. Tự động tăng chỉ mục cho Microsoft SQL Server 2008 R2

  5. Mili giây từ DateTime trong SQL Server và C # không giống nhau