Problema di ordinamento su stringhe contenenti il carattere meno

mercoledì 05 maggio 2010 - 13.04

clodp Profilo | Newbie

ho riscontrato il seguente problema:
caricando le seguenti stringhe ("a-c","a-e","a-m","ac","ad","ae","ag","ak","al","an") in una colonna testo e quindi applico l'ordinamento crescente la tabella visualizza i record come di seguito indicato
ac
a-c
ad
ae
a-e
ag
ak
al
a-m
an

sembra che il carattere meno venga ignorato quando viene eseguito l'ordinamento;
qualcuno sa dare una spiegazione di questo comportamento?

grazie
claudio








lbenaglia Profilo | Guru

>qualcuno sa dare una spiegazione di questo comportamento?

Ciao Claudio,

Osserva questa SELECT:

SELECT ASCII('-') AS [Cod. Ascii "-"], ASCII('a') AS [Cod. Ascii "a"]; /* Output: Cod. Ascii "-" Cod. Ascii "a" -------------- -------------- 45 97 (1 row(s) affected) */


Come puoi vedere il codice ASCII del trattino corrisponde al valore 45 mentre quello della lettera "a" minuscola è il 97, quindi è normale che in un ordinamento crescente il trattino venga restituito prima della lettera "a".

>grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

clodp Profilo | Newbie

ciao
proprio per quanto dici, inserendo in una colonna testo i record seguenti
ab
a-b
ac
a-c
e applicando l'ordinamento crescente mi aspetterei come risultato
a-b
a-c
ab
ac
e invece ottengo
ab
a-b
ac
a-c

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5