FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ayuda con 'order by'
Saludos a todos,
Necesito una ayudita en una cláusula 'order by'. Tengo tres campos que quiero ordenar, CATEG (numérico), SUBCATEG (numérico), y CODIGO (caracter). Mi problema es que CODIGO puede contener 'Null', que necesito que sea diferente a un caracter en blanco. Quiero ordenarlo en principo así : 'order by CATEG, SUBCATEG, CODIGO' peeeeeeero que en CODIGO aquellos registros que contengan algún caracter me salgan posteriores a los que tengan 'null'. Y es aquí donde Interbase 7.5 me pone primero los que tienen algún caracter y luego los que tienen 'null' (en CODIGO) y quiero que sea al revés. Un orden ejemplo sería (así quiero yo que me lo ordene) CATEG SUBCATEG CODIGO 1 1 null 1 2 null 1 3 null 1 3 ABC ... pero Interbase 7.5 me lo ordena de esta manera CATEG SUBCATEG CODIGO 1 1 null 1 2 null 1 3 ABC 1 3 null Gracias por vuestra ayuda.
__________________
Piensa siempre en positivo ! Última edición por gluglu fecha: 07-11-2006 a las 20:36:53. |
#2
|
||||
|
||||
Ohhhh, es en estos casos en los que doy un respiro de felicidad al pensar de que yo en una situación como la tuya usando Firebird lo resolvería tan facil como poner:
order by CATEG, SUBCATEG, CODIGO NULLS FIRST Dios!!!!, Gracias por estos pequeños momentos de felicidad no-justificada!!!!
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..." |
#3
|
||||
|
||||
__________________
Piensa siempre en positivo ! |
#4
|
||||
|
||||
Tengo entendido que Interbase 7.5 ya incorpora la función COALESCE con la cual puedes convertir los valores NULL:
de manera que obtendrás 0 para los valores NULL. Lo que desconozco es si puedes usar el COALESCE en la cláusula ORDER BY. // Saludos |
#5
|
||||
|
||||
Tengo que reconocerle una vez más a Román por su maravillosa sabiduría !
No conocía la función COALESCE, ni tampoco NULLIF que he observado vienen descritas en un fichero adicional de Interbase 7.5 como novedades y que uno se mira y lee al principio pero después no se puede acordar de todo, y menos de cosas que al principio a uno le parecen sin mayor trascendencia Efectivamente, tal y como anticipó Román, COALESCE no permite su utilización en 'Order by'. Intenté algo así como y me salta con que 'datatype not supported for arithmetic'. Finalmente he acudido a la cláusula CASE de Interbase (cuya existencia también desconocía ) y lo he solucionado finalmente de esta manera :
Mil gracias de nuevo por las ayudas prestadas.
__________________
Piensa siempre en positivo ! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Order by con parámetros | Carmelo Cash | SQL | 4 | 14-12-2005 14:01:48 |
Tab Order | kepacha | Varios | 5 | 31-01-2005 13:32:40 |
Order by | VRO | SQL | 6 | 31-08-2004 08:17:05 |
Order by ...... | chutipascal | Firebird e Interbase | 8 | 24-06-2003 14:46:21 |
ORDER BY en FireBird | FRANKER | Firebird e Interbase | 2 | 07-05-2003 11:41:02 |
|