segunda-feira, 29 de junho de 2009

Resultado do desafio de TSQL

Primeiramente gostaria de agradecer a todos que participaram do desafio de T-SQL, encaminhando suas soluções do problema ao blog.

Devido ao sucesso em participações, provavelmente teremos novos desafios que serão premiados de alguma forma. Aguardem novidades...

Observei todas as soluções encaminhadas e todas estão corretas, retornando exatamente o valor esperado. Portanto, considero que todos os participantes são vencedores! Parabéns!

A minha solução para o problema foi assim:

create table #teste(
c1 varchar(1),
c2 varchar(1),
c3 varchar(1)
)

insert into #teste (c1, c2, c3) values ('2','1','3')
insert into #teste (c1, c2, c3) values ('3','2','1')
insert into #teste (c1, c2, c3) values ('Z','X','Y')
insert into #teste (c1, c2, c3) values ('B','C','D')
insert into #teste (c1, c2, c3) values ('Y','Z','X')
insert into #teste (c1, c2, c3) values ('B','C','A')

select distinct * from(
select
case
when (c1 when (c2 when (c3 end as c1,
case
when (c1>c2 and c1c3) then c1
when (c2>c1 and c2c3) then c2
when (c3>c2 and c3c1) then c3
end as c2,
case
when (c1>c2 and c1>c3) then c1
when (c2>c1 and c2>c3) then c2
when (c3>c2 and c3>c1) then c3
end as c3
from #teste) as dados
order by 1,2,3


É claro existem várias soluções para o problema, a solução que estou apresentando não é mais nem menos correta que as soluções apresentadas.

Novamente obrigado a todos e até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!