Ver Mensaje Individual
  #8 (permalink)  
Antiguo 11/05/2011, 14:26
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: "ORDER BY" caracteres latinos

Hola de nuevo:

Mira, en estos momentos no tengo instalado algún SQL Server 2000 para hacer pruebas, pero según la documentación la sintaxis es la misma que para 2005 y 2008, checa esta página:

http://msdn.microsoft.com/es-es/libr...on124121120120.

Según lo que dice ahí esto debería funcionar:

Código:
ORDER BY
case 
when charindex('Ñ',ltrim(rtrim(t102.Nb_Completo)),1) <> 0 then STUFF(ltrim(rtrim(t102.Nb_Completo)),charindex('Ñ', ltrim(rtrim(t102.Nb_Completo)),1),1,'&')
else ltrim(rtrim(t102.Nb_Completo))
end  COLLATE traditional_spanish_CI_AS, t103.Nu_ExpedienteUNAM, IsNull(De_Calificacion, '00')
Si esto sigue sin funcionar igual y deberías probar tratar de cambiar la intercalación desde la definición de la tabla.

Aquí está aplicado el COLLATE tal y como te lo pongo en el ejemplo:

Cita:
Nivel de expresión
En expresiones utilizadas dentro del Transact-SQL se puede utilizar la instrucción COLLATE para determinar la intercalación utilizada por la expresión. Este nivel de intercalación se puede utilizar para comparaciones o para ordenamiento de columnas que operan con diferentes páginas de códigos.

SELECT *
FROM tblEmpleado
ORDER BY f_codigo COLLATE French_CI_AI
SELECT *
FROM tblEmpleado ORDER BY f_codigo = f_codigo_ant COLLATE Modern_Spanish_CS_AS
y también está explicado como puedes cambiar la intercalación a los campos de tu tabla:

Cita:
Modificación
Después de crear una base de datos o una tabla, es posible modificar la intercalación utilizada por estos objetos, para realizar estas modificaciones se utiliza la instrucción ALTER del lenguaje T-SQL, dependiendo del objeto a modificar.

ALTER DATABASE DbPrueba COLLATE SQL_Latin1_General_CP1_CI_AS
ALTER TABLE tblCiudad ALTER COLUMN f_pais varchar (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
Sería cuestión de que pruebes... si no funciona con la primer opción que te puse, utiliza la segundo, ahora sí que sería prueba-error hasta que funcione jejeje... En cuanto a las licencias, si tus jefes no quieren invertir en BD, pues igual y deberías proponerles alguna alternativa gratuita, como PostgreSQL. Igual y si logras la migración hasta un aumento te dan jejeje, explícales que con lo que tienen actualmente tienen un atraso de 10 años en la tecnología, pero bueno, esa ya es harina de otro costal.

Saludos y ojalá pronto encuentres la solución a tu problema.
Leo.