Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-04-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
ordenar registros

Hola tengo una tabla de sqlserver con un campo de tipo nvarchar, en el que guardos numeros y alguna vez letras al final por ejemplo 128,190a,578,78 como puedo hacer para que me ordene de la forma 78,128,190a,578, es decir por orden numérico?
Responder Con Cita
  #2  
Antiguo 20-04-2005
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
no es la forma más eficiente pero intenta esto:

creas una funcion
Código:
 CREATE FUNCTION dbo.fun_Numero (@codigo varchar(5))
  RETURNS int AS  
  BEGIN 
  DECLARE @nro int;
  	IF @codigo LIKE '%[A-Z]'
  		SET @codigo = CAST( LEFT(@codigo, LEN(@codigo)-1) AS INT)
  RETURN (CAST(@codigo as int))
  END
luego creas la tabla con un campo calculado
Código:
 create table nuevaTabla
 (
 codigo varchar(4),
 	nro AS dbo.fun_Numero(codigo)
 )
al hacer select * from nuevaTabla ORDER BY nro; deberías ver el resultado

otra forma que me parece más eficiente y si usas SQL Server 2000 pero que no la he probado sería cambiando la intercalación de la tabla usando COLLATE
Responder Con Cita
  #3  
Antiguo 20-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Una solución que puede resultar mas sencilla (siempre depende, claro) es dejar todas las cadenas del mismo tamaño, y rellenas de ceros o de espacios a la izquierda, de manera que el orden Textual resulte el mismo orden numérico:

Código:
'0000078 '
'0000128 '
'0000190A'
'0000578 '
Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:29:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi