![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
cast in query
hallo zusammen,
ich habe eine Query in der folgende klausel steht:
Code:
das Feld p.artnr ist vom Type char.
order by kunden_id , cast(p.artnr as integer)
Jetzt kann es leider vorkommen, dass in der artnr auch alphanumerische zeichen stehen ( Der Kund ist König) wie krieg ich es hin, dass die Sortierung trotzdem funktioniert ? ich danke euch |
AW: cast in query
Und wenn Du links mit Leerzeichen auffüllst (LPAD)?
|
AW: cast in query
leerzeichen?
du meinst in der Abfrage? |
AW: cast in query
Ja. Bei genügend Leerzeichen sollten theoretisch auch Zahlen korrekt sortiert werden.
Code:
-----1
---101 ---102 |
AW: cast in query
Zitat:
würde bedeuten, dass ich abhängig von der stringlänge der Artikenummern unterschiedlich viele leerzeichen davor setzen muss. Das char feld ist 20 Zeichen gross |
AW: cast in query
funktioniert leider nicht :-(
select artikelnummer from hwd_artikel order by lpad(artikelnummer,20) bringt die gleiche sortierung wie order by artikelnummer dagegen sortiert cast(artikelnummer as integer) so wie es sein soll, allerdings bekomme ich eben den Fehler bei alphanummerischen Zeichen :-( |
AW: cast in query
Du müsstest wohl nach Char konvertieren. Am besten gleich im Select selbst und dann noch einmal verschachteln.
SQL-Code:
Und das LPad noch rein.
select * from
( Select t.*, convert(t.int as Char) as OrderField from table t ) x order by ... x.Orderfield |
AW: cast in query
SQL-Code:
order by
kunden_id, ''||LPAD(p.artnr, 20) |
AW: cast in query
Hier könnte eine eigene Collation helfen.
|
AW: cast in query
Zitat:
die artikelnummer ist doch char |
AW: cast in query
Zitat:
|
AW: cast in query
[Collation in Firebird]http://www.firebirdsql.org/refdocs/langrefupd21-ddl-collation.html[/URL]
Aber es geht wohl kein Weg daran vorbei, sich über den Feldinhalt einpaar Gedanken zu machen. Wie sehen die Daten denn aus? Gruß K-H |
AW: cast in query
Zitat:
wenn das so einfach wäre. Die Anforderung des Kunden ist nunmal , numerische und alphanumerische, sowie gemischte Artikelnummern zu vergeben. Da helfen meine Gedanken, alphanumerische Werte nicht zuzulassen recht wenig :-( Also ist Artikelnummer vom tpye char. Und jetzt das Ganze numerisch sortieren, also 1,2,3,50,100, usw. dazischen dann noch abc, abd usw. |
AW: cast in query
Da gibt es wohl ein Verständnisproblem
Delphi-Quellcode:
ene "01" ist etwas anderes als eine "1" und wieder etwas anderes als eine " 1"
01
1 1 a 123 157a 157ab12 34-99-1 Vielleicht muß man den Kunden darauf hinweisen, daß das so nicht geht, oder ist vielleicht etwas anderes gemeint als in der DB steht? (Seit es diese prop. Fonts für Eingabefelder gibt, ist TrimLeft mein liebster Befehl) Gruß K-H |
AW: cast in query
ja, ich denke manche Sachen gehen einfach nicht wie der Kunde sich das vorstellt.
Ich werde ihn davon überzeugen :-) Ich danke euch Gruss KHH |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz