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

Trường hợp xoay vòng khi nào?

Bạn có cần sử dụng PIVOT không ?, bởi vì một cách đơn giản cho việc này là sử dụng CASE biểu thức:

SELECT  id,
        MIN(CASE WHEN displayName = 'User SID' THEN stringValue END) [User SID],
        MIN(CASE WHEN displayName = 'User Name' THEN stringValue END) [User Name],
        MIN(CASE WHEN displayName = 'Last Login' THEN dateValue END) [Last Login]
FROM YourTable
GROUP BY id

Đây là kết quả:

╔══════════════════════════════════════╦══════════╦═══════════╦════════════╗
║                  ID                  ║ USER SID ║ USER NAME ║ LAST LOGIN ║
╠══════════════════════════════════════╬══════════╬═══════════╬════════════╣
║ EBD6F18D-3CD3-4134-8FFB-7620D3EA93DF ║ SID2     ║ User 2    ║ 2012-01-10 ║
║ 59FAA56C-4C0C-456E-BA68-AC63250D6281 ║ SID-122  ║ My User   ║ 2012-01-01 ║
╚══════════════════════════════════════╩══════════╩═══════════╩════════════╝

Và đây là sqlfiddle có bản demo để bạn dùng thử.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhập SSIS Excel Buộc Loại cột Không chính xác

  2. Loại bỏ các bản sao bằng cách sử dụng phân vùng của SQL Server

  3. Cách thiết lập Thư cơ sở dữ liệu trong SQL Server (SSMS)

  4. Định dạng số điện thoại trong SQL Server (T-SQL)

  5. Chọn các hàng có chứa cột tối đa theo nhóm