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

Xoay vòng bằng SQL Server 2000

Tôi nhận ra rằng câu trả lời này đã được hai năm tuổi, nhưng tôi thấy khó chịu khi câu trả lời được chấp nhận yêu cầu sử dụng SQL động và câu trả lời được ủng hộ nhiều nhất sẽ không hoạt động:

Select P.ProductId, P.Name
    , Min( Case When PM.MetaKey = 'A' Then PM.MetaValue End ) As A
    , Min( Case When PM.MetaKey = 'B' Then PM.MetaValue End ) As B
    , Min( Case When PM.MetaKey = 'C' Then PM.MetaValue End ) As C
From Products As P
        Join ProductMeta As PM
            On PM.ProductId = P.ProductId
Group By P.ProductId, P.Name

Bạn phải sử dụng Nhóm Theo hoặc bạn sẽ nhận được một kết quả đáng kinh ngạc. Nếu bạn đang sử dụng Group By, bạn phải bao bọc từng cột không có trong mệnh đề Group By trong một hàm tổng hợp (hoặc một truy vấn con).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 Chuỗi trống so với Không gian

  2. Tạo cơ sở dữ liệu trong SQL Server 2017

  3. So sánh phần thời gian bỏ qua DATETIME và DATE

  4. LEN () trong SQL Server là gì?

  5. Cách chạy đồng thời SQL Server 2017 &2019 trên máy Mac