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

trục sql với các cột động

Vì bạn có một số lượng nhân viên được tuyển dụng trong danh sách của mình (từ nhận xét của bạn), bạn không cần nó phải năng động. Một trục xoay thông thường nên thực hiện thủ thuật:

select [Company Name],Emp1,Emp2,Emp3,Emp4  from (
    SELECT
        [Company Name],
        [Employee Name],
        'Emp' + cast(ROW_NUMBER() OVER (PARTITION BY [Comp ID] ORDER BY  [Design ID], [Emp ID] desc) as char(2)) as RowNum
    FROM
    (
        SELECT emp.[Emp ID],
            comp.[Company Name],
            design.[Designation],
            emp.[Design ID],
            emp.[comp id],
            emp.[Employee Name],
            ROW_NUMBER() OVER (PARTITION BY emp.[Comp ID], emp.[Design ID] ORDER BY emp.[Comp ID] desc, emp.[Design ID] desc, emp.[Emp ID] desc) RowNum
        from employee as emp
            join designation as design on design.[Design ID]=emp.[Design ID]
            join company as comp on comp.[Comp ID]=emp.[Comp ID]
    ) a
    WHERE RowNum <=2
) as pivotdata
pivot (max([Employee Name]) for [RowNum] in (Emp1,Emp2,Emp3,Emp4)) as P



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục được lưu trữ - trả về danh tính dưới dạng tham số đầu ra hoặc đại lượng vô hướng

  2. ĐỌC VỚI (NOLOCK) so với SET GIAO DỊCH MỨC ĐỘ CỰC KỲ ĐÃ ĐỌC KHÔNG ĐƯỢC ĐỀ XUẤT

  3. Truy vấn đệ quy để tìm bản ghi mẹ

  4. chuyển đổi dấu thời gian Epoch sang máy chủ sql (định dạng con người có thể đọc được)

  5. Xác định hàng mới nhất được thêm vào khi không có chỉ mục nào