Для упорядочивания чисел в столбце по группам в зависимости от наличия нулей между ними, можно воспользоваться функцией ROW_NUMBER() в MS SQL Server.
Пример запроса:
```sql
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (ORDER BY [your_column_name] DESC) - ROW_NUMBER() OVER (PARTITION BY CASE WHEN [your_column_name] = 0 THEN 1 ELSE 0 END ORDER BY [your_column_name] DESC) AS grp
FROM [your_table_name]
)
SELECT [your_column_name],
grp
FROM CTE
ORDER BY grp, [your_column_name] DESC;
```
В данном примере мы используем два оконных функции ROW_NUMBER(): одну для присвоения номера каждой строки в общем порядке убывания значений столбца, и вторую для присвоения номера каждой строки внутри группы в зависимости от наличия нулей между значениями.
После этого мы выводим значения столбца и их принадлежность к группе, учитывая порядок сначала по группе, а затем по значениям в убывающем порядке.
Таким образом, числа будут упорядочены по группам в зависимости от наличия нулей между ними.