Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę rozwinąć wiersz do wielowierszowego zestawu wyników?

Możesz użyć rekurencyjnego 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)

Oto demo abyś spróbował.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego SQL Server nie traktuje tego kodu w sposób błędny?

  2. Problem z zaokrąglaniem SQL Server, gdzie jest 5

  3. Jak aparat bazy danych obsługuje współbieżne wstawianie?

  4. SQL:Przewodniki przechowywania

  5. Scal dwie tabele / połącz wartości w jedną kolumnę