MAX() Function funktioniert nicht so wie ich es erwartet habe

24/01/2008 - 16:53 von Carsten Ilwig | Report spam
Hi Leute,
ich habe ine Frage zur MAX()-Function des MS SQL2000 Servers.

Ich habe in einer Spalte (BelegNummer) vom Typ VChar(10) 3 Werte stehen:

1108003
11080001
1108002

Wenn ich nun folgende Abfrage starte:

SELECT MAX(belegNummer) FROM Belege

Bekomme ich als Ergebnis den Wert "1108003".
Warum?
Müßte nicht der Wert "11080001" zurückgeliefert werden?
Eigentlich ist der doch der größte Wert.
Sowohl bei den Anzahl Stellen, also auch in numerischer Hinsicht.


Vielen Dank für Eure Hilfe
Carsten
 

Lesen sie die antworten

#1 Peter Fleischer
24/01/2008 - 17:02 | Warnen spam
"Carsten Ilwig" schrieb im Newsbeitrag
news:%

ich habe ine Frage zur MAX()-Function des MS SQL2000 Servers.

Ich habe in einer Spalte (BelegNummer) vom Typ VChar(10) 3 Werte stehen:

1108003
11080001
1108002

Wenn ich nun folgende Abfrage starte:

SELECT MAX(belegNummer) FROM Belege

Bekomme ich als Ergebnis den Wert "1108003".
Warum?
Müßte nicht der Wert "11080001" zurückgeliefert werden?



Hi Carsten,
beim Sortieren von Zeichenketten werden die zeichen von links nach rechts
betrachtet, also so:

sortierte Folge:

11080001
1108002
1108003

Eigentlich ist der doch der größte Wert.



Der größte Wert ist der letzte der Sortierfolge, also 1108003

Sowohl bei den Anzahl Stellen, also auch in numerischer Hinsicht.



Numerisch ist uninteressant, da das Feld nicht numerisch ist.

Viele Gruesse

Peter

Ähnliche fragen