problema a la hora de ordenar

13/06/2004 - 19:08 por as | Informe spam
Cómo ordeno esto mediante una consulta (en sql server)
Referencia --> de tipo String
Imaginemos q la referencia contiene los siguientes valores ->
1,2,3,4,5,6,7,8,9,10,11,12,33..
Si hago esto select * from tabla order by referencia el resultado es este:
1,11,2,3,33,4,5,6
como el campo no es numérico la ordenacion no la hace correctamente.

sabeis como puedo solucionarlo? (el tipo de dato no puedo cambiarlo, ya q
puede ser 1a, 1b, 2abc..)

Preguntas similare

Leer las respuestas

#1 Manuel Daponte
13/06/2004 - 23:56 | Informe spam
order by cast(referencia as smallint)

Manuel A. Daponte Santiago
DBA Municipio de Guaynabo


"as" ,com> wrote in message news:
Cómo ordeno esto mediante una consulta (en sql server)
Referencia --> de tipo String
Imaginemos q la referencia contiene los siguientes valores ->
1,2,3,4,5,6,7,8,9,10,11,12,33..
Si hago esto select * from tabla order by referencia el resultado es este:
1,11,2,3,33,4,5,6
como el campo no es numérico la ordenacion no la hace correctamente.

sabeis como puedo solucionarlo? (el tipo de dato no puedo cambiarlo, ya q
puede ser 1a, 1b, 2abc..)
Respuesta Responder a este mensaje
#2 Javier Loria
14/06/2004 - 15:42 | Informe spam
Hola:
Tal vez algo como:
==SELECT ...
FROM
ORDER BY CAST(CASE PATINDEX('%[^0-9]%', Orden)
WHEN 0 THEN Orden
ELSE SUBSTRING(Orden, 1, PATINDEX('%[^0-9]%',
Orden)-1)
END AS INT)
, Orden
==
Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
as ,com> escribio:
Cómo ordeno esto mediante una consulta (en sql server)
Referencia --> de tipo String
Imaginemos q la referencia contiene los siguientes valores ->
1,2,3,4,5,6,7,8,9,10,11,12,33..
Si hago esto select * from tabla order by referencia el resultado es
este: 1,11,2,3,33,4,5,6
como el campo no es numérico la ordenacion no la hace correctamente.

sabeis como puedo solucionarlo? (el tipo de dato no puedo cambiarlo,
ya q puede ser 1a, 1b, 2abc..)
Respuesta Responder a este mensaje
#3 Liliana Sorrentino
14/06/2004 - 15:46 | Informe spam
Hola,

SELECT dato FROM tabla ORDER BY RIGHT( '0000000000' + CAST(dato aS
VARCHAR ), 10)

Saludos... Liliana.

"as" ,com> escribió en el mensaje
news:
Cómo ordeno esto mediante una consulta (en sql server)
Referencia --> de tipo String
Imaginemos q la referencia contiene los siguientes valores ->
1,2,3,4,5,6,7,8,9,10,11,12,33..
Si hago esto select * from tabla order by referencia el resultado es este:
1,11,2,3,33,4,5,6
como el campo no es numérico la ordenacion no la hace correctamente.

sabeis como puedo solucionarlo? (el tipo de dato no puedo cambiarlo, ya q
puede ser 1a, 1b, 2abc..)


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida