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

Xoay vòng trên các bảng đã tham gia SQL Server

Đây là một tùy chọn thay thế cho PIVOT kết quả của bạn bằng cách sử dụng MAX với CASE điều đó không yêu cầu tham gia bảng trở lại chính nó:

select t.id1, t.id2, t.a, t.b, 
    max(case when t2.name = 'C1' then t2.vint end) c1,
    max(case when t2.name = 'C2' then t2.vstring end) c2,
    max(case when t2.name = 'C3' then t2.vdata end) c3
from tab1 t
    left join tab2 t2 on t.id1 = t2.id1 and t.id2 = t2.id2 
group by t.id1, t.id2, t.a, t.b



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chuyển đổi Số nguyên 3/4 ký tự sang Định dạng thời gian 24 giờ và kết hợp với ngày tháng?

  2. Thủ tục đã lưu trữ:chuyển XML làm đối số và CHÈN (cặp khóa / giá trị)

  3. Làm cách nào để giữ lại các thẻ CDATA khi lưu trữ các kết quả truy vấn trong một biến Xml?

  4. Phiên bản có tên SQL Server với dự án Visual Studio 2017 Installer

  5. Hàm tổng hợp trong một truy vấn cập nhật SQL?