SQL Server - order by

   
Vista:

order by

Publicado por soledad (34 intervenciones) el 13/05/2010 16:57:17
Hola, gente del foro...

Tengo esta consulta:
select nromov FROM movimientos ORDER BY nromov ASC. Me devuelve estos resultados

"100/10"
"105/10"
"90/10"
"91/10"
"93/10"

De echo no me devuelve ordenados. El campo nromov es un character varying.

Nesecito que se ordene de esta forma y los datos me devuelva de menor a mayor.

"90/10"
"91/10"
"93/10"
"100/10"
"105/10"
-----------------------------------
En otra consulta donde tenia un nrodespido tambien como character varying, pero la diferencia que no tenia /10 (barra y año) los pude ordenar asi:

select nrodespido FROM movimientos ORDER BY cast(nrodespido as integer) ASC.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de SQL Server
- Cursos de SQL Server
- Temas de SQL Server
- Chat de SQL Server
información
Cursos y Temas de SQL Server
- SQL Server 7
- Reducir el fichero de log en SQL Server
- Curso de SQL Server 2005
Imágen de perfil de roger

RE:order by

Publicado por roger (173 intervenciones) el 13/05/2010 19:47:16
prueba
select nrodespido FROM movimientos ORDER BY cast(replace(nrodespido,'/','') as integer) ASC

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:order by

Publicado por soledad (34 intervenciones) el 14/05/2010 12:04:32
Hola ROGER...

Disculpa,, ya lo abia probado de esta manera. funciona en algunos casos.
Pero que sucede si el usuario cargaria algunos de los datos de esta forma:

"90/10"
"92/2010"
"91/10"
"93/2010"
"100/10"
"105/10"
"103/2010"

El orden no funcionaria, ya que no puedo controlar eso, Pregunto si existe alguna forma de obtener el dato antes de la (/) que es la mas seguro que podria funcionar.

Investigue mucho en la web y todavia no encontre por eso consulto a los expertos.

Desde ya muchismas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:order by

Publicado por roger (173 intervenciones) el 14/05/2010 16:27:10
esta es una solucion a lo que planteas

select nrodespido FROM movimientos ORDER BY cast(substring(nrodespido,1,charindex('/',nrodespido)-1) as integer) ASC

la idea es tomar la parte antes del / con la funcion substring, pero como no se sabe donde esta el /, es necesario encontrarlo con charindex
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:order by

Publicado por soledad (34 intervenciones) el 17/05/2010 11:59:25
Hola roger,
Me esta dando este erro:

ERROR: no existe la función charindex("unknown", character varying)
SUGERENCIA: Ninguna función coincide en el nombre y tipos de argumentos.

tampoco me deja usar la funcion substring, de modo que ya estube probando con esto, pero no con el charindex

select nrodespido FROM movimientos ORDER BY substring(nrodespido,1,-1) ASC
ERROR: no se permite un largo negativo de subcadena

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:order by

Publicado por Isaias (3180 intervenciones) el 17/05/2010 17:39:40
¿Podrias comentar que motor de base de datos estas ocupando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:order by

Publicado por soledad (34 intervenciones) el 18/05/2010 16:33:37
Hola...
Estoy usando postgres.

Solucione con la condicion de cargarlo el año completo solamente, y la solucion es la primera obsion.

cast(nrodespido, '/', '') as integer

Saludos...
muchisimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:order by

Publicado por soledad (34 intervenciones) el 18/05/2010 16:40:51
perdon me olvide del (replace)--

cast(replace(nrodespido, '/', '') as integer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:order by

Publicado por Isaias (3180 intervenciones) el 18/05/2010 17:48:27
Y tampoco te has dado cuenta que estas en el foro incorrecto: MICROSOFT SQL SERVER, nada que ver con Postgress
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar