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

Обърнете/издухайте GROUP BY

Можете да управлявате с общ израз на таблица

WITH CTE AS (
    SELECT OwnerNumber,ItemCode,ItemNumber,CountOfItems FROM table

    UNION ALL SELECT OwnerNumber,ItemCode,ItemNumber,CountOfItems-1
    FROM CTE
    WHERE CountOfItems >= 2
)
SELECT OwnerNumber,ItemCode,ItemNumber
FROM CTE
ORDER BY ItemNumber
OPTION (MAXRECURSION 0);

Редактиране:

Добавен MAXRECURSION за справяне със ситуации, при които CountOfItems надвишава максималните рекурсии по подразбиране, както е посочено от Dev_etter



  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# в ASP.NET

  2. SQL Server 2008 не може да премахне ограничението

  3. SSIS Как да получите част от низ чрез разделител

  4. Говорим за тесните места в производителността на SQL Server

  5. Множество условия в клаузата WHERE