case внутри case при сортировке

michael R
Дата: 16.02.2010 19:41:29
...........
order by
case			when @field=1 and @dir='asc'    then  A.SD end asc,
case			when @field=1 and @dir='desc'  then  A.SD end desc,

case			when @field=14  and @dir='desc'  then    A.AR  end desc , 
case			when @field=14  and @dir='asc'  then case when  A.ARank<1  then 100000000 else  
                                                                       A.AlexaRank  end  end  asc
..........................



пытаюсь использовать case внутри case
не работает

интересуюсь каков правильный формат записи
если кто знает помогите
запрос не динамический

Спасибо
Паганель
Дата: 16.02.2010 19:55:06
michael R
каков правильный формат записи
в хелпе я не нашел.. плохо искал скорее всего...

вот пример case внутри case, первое что в голову пришло
declare @test int
set @test = 6

select case when @test % 2 = 0
            then case when @test % 3 = 0
                      then 'true'
                      else '+-'
                  end
            else 'false'
        end as result

result
------
true

(1 row(s) affected)


michael R
не работает
приведите, пожалуйста, текст сообщения об ошибке
michael R
Дата: 16.02.2010 20:03:41
Паганель

у меня множественна сортировка

жалуется именно на asc
Паганель
Дата: 16.02.2010 20:07:59
michael R
у меня множественна сортировка
жалуется именно на asc
вот множественная сортировка, в которой на asc никто не жалуется:
declare @test int
set @test = 6

select *
  from (select 1 as id, @test as test) as t
 order by case when id = 1 then 'true' else 'false' end
         ,case when test % 2 = 0
               then case when test % 3 = 0
                         then 'true'
                         else '+-'
                     end
               else 'false'
           end asc

id          test
----------- -----------
1           6

(1 row(s) affected)

приведите, пожалуйста, текст сообщения об ошибке
michael R
Дата: 16.02.2010 22:30:56
Паганель

спасибо разобрался
вроде работает
у меня была лажа условий много