Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/05/2011, 12:00
clammatus
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: "ORDER BY" caracteres latinos

Al parecer en SQL 7 no se pueden cambiar los collate, siempre se quedara de acuerdo al collate como se instalo el sql

me harte migre la base de datos a sql 2000 (un rollo con los store procedures) pero bueno ya pude, ahora estoy atorado en un modulo con el collate ejemplo:


select distinct t103.Nu_ExpedienteUNAM,
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 as NbCompleto,
IsNull(De_Calificacion, '00')
from t102_dAlumnoIncorporacion t102, t103_dAlumnosAsignaturas t103
where t102.Pk_CveOrigen = @PkCveOrigen
and t102.Pk_CveCicEsc = @PkCveCicEsc
and t102.Pk_CveEstatus in ('ALU01','ALU04')
and t102.Pk_CveOrigen = t103.Pk_CveOrigen
and t102.Pk_CveCicEsc = t103.Pk_CveCicEsc
and t102.Pk_Matricula = t103.Pk_Matricula
and t103.De_GrupoUNAM not in ('','9999')
and t103.De_GrupoUNAM = @PkCveGrupoUNAM
and t103.Pk_CveAsignatura = @PkCveAsignatura
-- order by t103.Pk_CveAsignatura, t103.De_GrupoNAM, rtrim(t102.Nb_Completo)
order by NbCompleto, t103.Nu_ExpedienteUNAM, IsNull(De_Calificacion, '00')

Asi si funciona el store, pero al agregar el COLLATE en nbcompleto al final

select distinct t103.Nu_ExpedienteUNAM,
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 as NbCompleto,
IsNull(De_Calificacion, '00')
from t102_dAlumnoIncorporacion t102, t103_dAlumnosAsignaturas t103
where t102.Pk_CveOrigen = @PkCveOrigen
and t102.Pk_CveCicEsc = @PkCveCicEsc
and t102.Pk_CveEstatus in ('ALU01','ALU04')
and t102.Pk_CveOrigen = t103.Pk_CveOrigen
and t102.Pk_CveCicEsc = t103.Pk_CveCicEsc
and t102.Pk_Matricula = t103.Pk_Matricula
and t103.De_GrupoUNAM not in ('','9999')
and t103.De_GrupoUNAM = @PkCveGrupoUNAM
and t103.Pk_CveAsignatura = @PkCveAsignatura
-- order by t103.Pk_CveAsignatura, t103.De_GrupoNAM, rtrim(t102.Nb_Completo)
order by NbCompleto collate traditional_spanish_CI_AS, t103.Nu_ExpedienteUNAM, IsNull(De_Calificacion, '00')

Me dice un error de order by como si no lo tuviera en el select distinct:

ORDER BY items must appear in the select list if SELECT DISTINCT is specified

funciona sin el collate cuando pongo el collate es cuando me da el error