Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 проблема с сортировкой  [new]
JuliJ
Member

Откуда:
Сообщений: 42
Надо отсортировать по следующему принципу:
если GroupName is null, то сортировать по ChannelNm, т.е. в результате должно получится:

1 А null null 1
3 null 1 A 2
5 E 1 A 3
4 B null null 4
2 C null null 5


create table #Channel (   ChannelId int,
                          ChannelNm nvarchar(100)  null,
                          GroupId int null,
                          GroupName nvarchar(100) null)     
	  go
  insert into #Channel select 1,'A',null,null
  insert into #Channel select 2,'C',null,null
  insert into #Channel select 3,null,1,'A'
  insert into #Channel select 4,'B',null,null
  insert into #Channel select 5,'E',1,'A'
go


declare  @sortingCol nvarchar(20)  
declare   @sortingDir nchar(4)

set   @sortingCol='ChannelNm'      
set   @sortingDir = 'AsC'

Select   ChannelId,
         ChannelNm,
         GroupId,
         GroupName,
         ROW_NUMBER() OVER (
              order by 
                case when(@sortingDir = 'ASC') then case when @sortingCol='ChannelNm' then  
                      isnull((select min(GroupName) from #Channel t where t.GroupId = GroupId), ChannelNm)              
                end  end asc,

                case when(@sortingDir = 'DESC') then case when @sortingCol='ChannelNm' then 
                     isnull((select min(GroupName) from #Channel t where t.GroupId = GroupId), ChannelNm)  
                end  end desc)

from #Channel
go
drop table #Channel
go
17 июл 09, 17:59    [7430909]     Ответить | Цитировать Сообщить модератору
 Re: проблема с сортировкой  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
может вы все же глянете в сторону деревьев?
тем не менее:
order by isnull(GroupName, channelnm)
вы функции не знали? isnull

для спящего время бодрствования равносильно сну
17 июл 09, 18:10    [7430972]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить