Order by Problem...

27/11/2008 - 10:52 von Mario Schulz | Report spam
Hallo,

hab da ein Problem bei einer simplen Order By Klausel :

select ak_artikelstd from artikelstd where ARTIKELSTD.AK_ARTIKELSTD LIKE
'551%' order by ak_artikelstd asc


als Ergebnis erhalten ich dann :

551-001BL
551-001CA
551-001CR
551BE01.L
551BU04.R
551C003.LR
551D015.L
551D023.L
551D023.R
551H047.L
551H097.L
551H097.R
551H103.L
551H103.R
551H114.L
551H114.R
551HY01.R
551K082.L
551K099.R
551K100.LR
551-S01 <<<<< hier z.B.
551-S02
551-S03
551S050.L
551S094.R
551S108.1.L
551S108.1.R
551-SP2BL
551-SP2CA
551-SP2CR
551-SP2GE
551-SP2GO
551-SP2GR
551-SP2OR
551-SP2SI
551-SP2SR
551-SP2SW
551-SP2TI
551-SP2WT


Warum habe ich in der Liste nicht erst alle Artikel 551- am Anfang ...

Es stehen diese Teilweise spàter noch mal in der Liste ...

Jemand eine Idee ?

concept Software
Web : www.concept-dv.de

** Alle haben gesagt es ist unmöglich dies zu machen, da kam einer der
wusste es nicht und hat es einfach gemacht! **
 

Lesen sie die antworten

#1 Elmar Boye
27/11/2008 - 11:08 | Warnen spam
Hallo Mario,

Mario Schulz schrieb:
hab da ein Problem bei einer simplen Order By Klausel :

select ak_artikelstd from artikelstd
where ARTIKELSTD.AK_ARTIKELSTD
LIKE '551%' order by ak_artikelstd asc

als Ergebnis erhalten ich dann :

551-001BL
551-001CA
551-001CR
551BE01.L
551BU04.R
551C003.LR
[...]
551K100.LR
551-S01 <<<<< hier z.B.
551-S02
551-S03
551S050.L
551S094.R
[...]
551S108.1.R
551-SP2BL

Warum habe ich in der Liste nicht erst alle Artikel 551- am Anfang ...



Weil der Bindestrich (engl. Hyphen) nicht in der Sortierung
berücksichtigt ist, er ist quasi unsichtbar.

Und so sortierst Du (gekürzt):
551001BL
551K100.LR
551S01 (=> 551-S01)
551S108.1.R
551SP2BL (=> 551-SP2BL)

Das Problem und ein Workaround wird beschrieben in
<URL:http://support.microsoft.com/kb/305704>
"PRB: Windows Collations Ignore Single Quote and Hyphen When Ordering"

und wird nicht vom SQL Server verursacht, sondern ist in den Windows-
Sortierungen so eingebaut (und man findet àhnliches für andere Produkte).

Gruß Elmar

Ähnliche fragen