Jenstel |
---|
А если в выборке имеется еще и поле Format со значением 0 или 1, то как вывести сначала записи с Format=0 в таком порядке, а потом с Format=1 в обычном порядке? |
with x(n, format) as
(
select 1, 0 union all
select 2, 0 union all
select 3, 0 union all
select 4, 0 union all
select 5, 0 union all
select 6, 1 union all
select 7, 1 union all
select 8, 1
)
select
n
from
x
order by
format,
case when format = 0 then
isnull(nullif(row_number() over (partition by format order by n) % ((count(*) over (partition by format) + 1) / 2), 0), 2147483647)
end,
row_number() over (partition by format order by n);
|