[firebase-br] RES: RES: Campo NULL Primeiro

Tiago de Assis Pimenta tiagopimenta em gmail.com
Seg Out 27 01:38:25 -03 2008


AHAUHUAHUH é que o pessoal falou que o SBT faz sensionalismo, por isso
comentei do SBT, mas vamos para o interessante do email.

A query, realmente retorna campos null, por é um join que estou fazendo.
Então juntando os dados da tabela máster com a detail, alguns campos como o
datareligação, vão vim como null, porque ainda não foram preenchidos.

Testei o nulls first e deu certo, amanha mesmo eu já troco o comando no
serviço, para ficar algo mais "profissional". Não tinha dado certo antes,
porque eu fiz assim "order by CAMPO null first", daí ele não funcionou.

 Testei também o coalesce no order by e não aconteceu nada. Já no select, eu
testei no serviço e ele faz o que falei anteriormente, os que estão null,
ele apresenta como 01/01/2008 certim, agora os que já tinha alguma coisa,
ele formata para YYYY-MM-DD (Testem para ver).

Então a minha única solução naquele momento, era usar o cast para falar para
a "SQL" que aquele campo era Data, e que os nulls eram para vim com
"01/01/2008", pois com essa data, eles viriam primeiro.

Agora o porque o coalesce reformata os campos eu não sei, eu acho que é
porque ele intende a string '01/01/2008' como string realmente, e não como
data, ou pode ser formato default , não sei.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eduardo Bahiense
Enviada em: segunda-feira, 27 de outubro de 2008 01:18
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] RES: Campo NULL Primeiro

Oi Zé

É como eu falei, desculpe a brincadeira.

É que em um ambiente cooperativo como esta lista, espera-se que as 
pessoas troquem experiências e informações, e a sua frase "Eu já 
resolvi, mas queria saber qual o modo mais eficiente para isso.", não 
está bem de acordo com essa filosofia, parecendo que você não queria nos 
dizer sua "gambiarra", embora eu tenha certeza que sua intenção não 
tenha sido de não trocar experiências aqui. Foi só uma brincadeira 
mesmo, me desculpe novamente, mas não faça isso de novo (rs).

Bem, quanto à sua questão, você deve se certificar que as datas estão 
NULL mesmo ou ZERO, que dá uma data do tipo '30-12-1899' (ou algo 
parecido).

Se estiverem NULL, "NULLS FIRST" deveria funcionar e seria o melhor 
caminho. Se não funcionar -> reporte o bug.

Para se certificar, faça um SELECT * FROM TABELA WHERE CAMPO_DATA IS 
NULL e WHERE CAMPO_DATA < '01.01.1900' e veja o que vem.

Agora, se você usar COALESCE com NULLS FIRST, também fica um pouco 
incoerente. O CAST também não entendi, o campo não é DATE?

Talvez se você nos disser mais sobre a estrutura da tabela e como está a 
query, possamos te ajudar mais.

Agora, falar mal do SBT é sacanagem, assisto todos os dias o Jornal do 
SBT e a novela Pantanal e acho muito legal, mas também não vamos brigar 
por causa disso.


Abração


Eduardo

Tiago de Assis Pimenta escreveu:
> Nossa cara, nada a ver isso que vc falou, e muito menos o que o Henrique
> falou, eu somente falei que tinha resolvido, para falar que não era tão
> urgente assim, que eu já tinha achado uma maneira para fazer, mas tinha
> certeza que não era a melhor das opções, por isso vim aqui perguntar como
> vc's fariam, para ver qual a melhor maneira.
> 
> Como falaram, vou tentar o nulls first , pois tentei com null first e não
> deu certo.
> 
> Coloquei primeiro coalesce, mas como falei, ele formatou as datas que
tinham
> preenchimento como 2008-10-27.
> 
> Daí o que eu tive que fazer, usar o cast para definir o campo como data, e
> depois o coalesce. Daí sim veio do jeito que eu queria. Mas eu sei que foi
> gambiarra. Uma função dentro da outra Cast(Coalesce()). E tudo isso no
> select. Não tentei fazer o coalesce no order by (Vou tentar também isso
> depois).
> 
> Bom era isso, agora se pareceu que eu estava sendo sencionalista, me
> desculpe, mas nada a ver, vc's tem que parar de assistir SBT viu :)
> 
> Abraços.
> 
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em
> nome de Eduardo Bahiense
> Enviada em: domingo, 26 de outubro de 2008 21:44
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] Campo NULL Primeiro
> 
>> OBS.: Eu já resolvi, mas queria saber qual o modo mais eficiente para
> isso.
> 
> Essa é muito boa em um ambiente cooperativo !
> 
> Eu gostaria muito de saber sobre isso, mas sem me expor!
> 
> Então, se você me contar como você fez eu conto como eu faria.
> 
> Desculpe a brincadeira,
> 
> 
> Eduardo
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista