Hallo
habe ein Problem bei einer Abfrage mit VisualBasic.
Im Moment habe ich ja schon den Hinweis dafür bekommen, daß
ich Zahlen bis 2000000 mit Order By CLNG („Feld“) sortieren kann
Wörter einfach mit Order By („Feld“) sortieren kann
Problem nun folgendes, wenn meine Zahlen auch „Wörter“ sind, funktioniert diese Sortierung nur teilweise, weil hier nach 1, 10 kommt und nicht 2 usw.
Wenn ich eine Kombination aus Wörtern und Zahlen habe bekomme ich eine Fehlermeldung abhängig von der SQL-Zeile
Sind diese Wörter unterschiedlicher Länge gibts auch Probleme
Ich bräuchte eine saubere Sortierung einer Spalte, welche aus Textfelden besteht und alle möglichen Zahlen, Wort oder beides enthalten kann.
Beispiel in einer Spalte (alles Textwerte) stehen folgende Werte:
1
200N
2
Lukas
10
Detlef
2000
hugo
13654
Normalerweise sollten dann die Sortierung
1
2
10
2000
13654
200N
Detlef
hugo
Lukas
ergeben.
Wie kriege ich das hin??? Wer kennt sich da genauer aus.
das geht nicht. Eine Spalte hat einen Datentyp, der kann numerisch sein oder alphanumerisch, aber nicht beides. Das Sortierverfahren kennt den Datentyp und verhält sich genau nach Vorschrift.
Nimm doch mal eine Handvoll Werte und versuche, sie in Excel zu sortieren. Was da nicht geht, geht in der Datenbank auch nicht.
wie wäre es, wenn man zuerst zwei „Unterabfragen“ bildet, in denen man jeweis Text und Zahl mit
WHERE IsNumeric(Feldname) = True bzw. False
voneinander trennt und dann mit einer UNION-Abfrage geordnet wieder zusammensetzt. Das läßt sich auch in einen SQL-Ausdruck pressen, aber dafür bin ich jetzt zu müde
Die beiden Unterabfragen sortieren und die UNION-Abfrage unsortiert ausgeben? Kommen dann die beiden Datenblöcke in sich sortiert hintereinander weg?
oder ein Ja/Nein-Feld an die Tabelle anhängen und per Aktualisierungsabfrage für die numerischen Werte auf True setzen (oder umgekehrt) und die UNION-Abfrage zuerst nach dem Ja/Nein-Feld und dann nach dem anderen Kriterium sortieren?
ich habe den hinweis bekommen, einfach nullen vor die Zahl zu setzen und dann Order By zu verwenden.
Das wird wohl die einzige vernünftige Lösung sein.
Schade eigentlich, das es bei Officeprogrammen nicht einmal dazu reicht eine Sortierung richtig zu machen.
ich habe den hinweis bekommen, einfach nullen vor die Zahl zu
setzen und dann Order By zu verwenden.
den Tipp kannst Du dem Spender um die Ohren schlagen. Natürlich kannst Du alle Zahlen mit führenden Nullen auffüllen - aber was machst Du mit 200N? Ist das größer als 200NA? Was soll bei 200NA166ZX passieren?
Schade eigentlich, das es bei Officeprogrammen nicht einmal
dazu reicht eine Sortierung richtig zu machen.
Ohne Dir zu nahe treten zu wollen: Hier kann Office wirklich nichts dafür, und die meisten Fehler passieren zwischen dem linken und dem rechten Ohr. Beschreibe einem Programmierer widerspruchsfrei , wie Du sortieren möchtest, und er wird Dir die Funktion bauen.