Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да разширя ред в набор от резултати с няколко реда?

Можете да използвате рекурсивен CTE:

;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)

Ето демонстрация за да опитате.



  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 (MS Access 2007)

  2. SQL Server - Редът на колоните има ли значение?

  3. SQL Изберете ред и запазете в SQL променлива

  4. Какви биха могли да бъдат добри начини за внедряване на ASP.Net уеб приложения?

  5. Как да получите предишна стойност за нулеви стойности