Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renan Queiroz

Uma Procedure

Recommended Posts

É o seguinte, tenho uma proc que me traz dados referentes a uma tabela,

que dependendo da opção do usuário (que escolhe em um select), deve

ser ordenada ou por Nome ou por Data (DESC) ...

 

Tenho ao final da minha procedure o seguinte trecho de código:

...
	order by
		case
			when @ordenar = 0 then cast(dtAgendamento as varchar)
			else pesNome
		end
END
Que faz o seguinte: quando o usuário escolhe no select ordenar por Nome o

value do select é 1, a proc recebe o parâmetro e faz a verificação.

 

Até ai ok ... só que estou querendo ordenar o "dtAgendamento" de forma DECRESCENTE!

fiz alguns teste e o case não aceita de forma alguma o DESC, existiria alguma forma

ou realmente é impossível? Existe algum problema na sintaxe?

Aceito sugestões, se alguém tiver uma outra idéia fique a vontade!

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Desde já grato a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Renan,

 

Não é possivel, pois o SQL não aceita que o case retorne um comando para completar o select, devido a forma como ele processa o select internamente.

 

Dica?

 

If @ordernar = 1

begin

....

order by pesNome

end

else

begin

....

order by dtAgendamento desc

end

 

Não irá impactar no tempo de execução, pois, ao verificar que ordenar não é 1 ele automaticamente pula o bloco de comando e vai até o else.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.