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

Làm cách nào để tôi có thể mở rộng một hàng thành nhiều hàng tập hợp kết quả?

Bạn có thể sử dụng CTE đệ quy:

;WITH CTE AS
(
    SELECT *
    FROM YourTable
    UNION ALL 
    SELECT id, pcs-1
    FROM CTE
    WHERE pcs-1 >= 1
)
SELECT *
FROM CTE
ORDER BY id, pcs
OPTION(MAXRECURSION 0)

Đây là bản trình diễn để bạn 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. Kiểu dữ liệu cột động thay đổi từ nvarchar sang thập phân nếu điều kiện được thỏa mãn sql

  2. isnull vs is null

  3. Mọi Bảng Người dùng có nên có Chỉ mục được phân cụm không?

  4. làm thế nào để buộc cài đặt phòng thu quản lý?

  5. TSQL để nhận các bản ghi DISTINCT theo thứ tự và sau đó áp dụng số hàng