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

Cách xoay nhiều cột mà không cần tổng hợp

Sử dụng row_number() chức năng và thực hiện có điều kiện tổng hợp:

select id, IdCust, Ref,
       max(case when Seq = 1 then stock end) as [Stock A], -- second table *id*
       max(case when Seq = 1 then code end) as [Code 1],
       max(case when Seq = 1 then price end) as [Price1],
       max(case when Seq = 2 then stock end) as [Stock B], -- second table *id*
       max(case when Seq = 2 then code end) as [Code 2],
       max(case when Seq = 2 then price end) as [Price2]
from (select f.*, s.Id Stock, s.Code, s.Price,
             row_number() over (partition by f.Ref order by s.id) as Seq
     from first f
     inner join second s on s.Ref = f.Ref 
     ) t
group by id, IdCust, Ref;

Tuy nhiên, điều này sẽ đi với đã biết các giá trị khác bạn cần đi với động giải pháp cho điều đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo mối quan hệ 1-1 thực sự trong SQL Server

  2. Kích hoạt đăng nhập trong SQL Server

  3. Ví dụ về định dạng 'datetimeoffset' trong SQL Server bằng cách sử dụng chuỗi định dạng chuẩn (T-SQL)

  4. Làm cách nào để thêm cột nhận dạng mới vào bảng trong SQL Server?

  5. Sử dụng cơ sở dữ liệu được tạo GUID và ngày giờ với EF4