Führende Nullen bei der Abfrage entfernen
Führende Nullen bei der Abfrage entfernen
am 09.08.2006 15:24:23 von Karsten Jacob
Hi NG.
Folgendes Problem bei dieser Abfrage:
SELECT MAX(km_stand) AS max_km_stand, MIN(km_stand) AS min_km_stand FROM
tankdaten
km_stand ist varchar und wird manchmal mit führenden Nullen, also z.B.
0011000
oder eben auch nicht, also
10000
eingetragen.
Da bei varchar MAX bzw. MIN 10000 > 0011000 ist, bekomme ich falsche
Werte. Gibts eine Möglichkeit, bei der Abfrage die führenden Nullen zu
entfernen oder die Daten irgendwie zu casten, so dass ich die richtigen
Werte bekomme?
Die Datenbank selber kann ich nicht anrühren, so dass ich anstelle von
varchar bei km_stand int angeben könnte.
Gruß,
Karsten
Re: Führende Nullen bei der Abfrage entfernen
am 09.08.2006 15:27:44 von Christian Kirsch
Karsten Jacob schrieb:
> Hi NG.
>
> Folgendes Problem bei dieser Abfrage:
>
>
> SELECT MAX(km_stand) AS max_km_stand, MIN(km_stand) AS min_km_stand FROM
> tankdaten
>
>
> km_stand ist varchar und wird manchmal mit führenden Nullen, also z.B.
>
> 0011000
>
> oder eben auch nicht, also
>
> 10000
>
> eingetragen.
>
>
> Da bei varchar MAX bzw. MIN 10000 > 0011000 ist, bekomme ich falsche
> Werte. Gibts eine Möglichkeit, bei der Abfrage die führenden Nullen zu
> entfernen oder die Daten irgendwie zu casten, so dass ich die richtigen
> Werte bekomme?
>
Wenn es solche Funktionen gibt, dann findest Du sie sicherlich in der
MySQL-Dokumentation unter dev.mysql.com/doc. Die ist sogar durchsuchbar...
Re: FührendeNullen bei der Abfrage entfernen
am 09.08.2006 15:54:05 von Marco Dieckhoff
On 2006-08-09, Karsten Jacob wrote:
> Hi NG.
>
> Folgendes Problem bei dieser Abfrage:
>
>
> SELECT MAX(km_stand) AS max_km_stand, MIN(km_stand) AS min_km_stand FROM
> tankdaten
>
>
> km_stand ist varchar und wird manchmal mit führenden Nullen, also z.B.
>
> 0011000
>
> oder eben auch nicht, also
>
> 10000
>
> eingetragen.
>
>
> Da bei varchar MAX bzw. MIN 10000 > 0011000 ist, bekomme ich falsche
> Werte. Gibts eine Möglichkeit, bei der Abfrage die führenden Nullen zu
> entfernen oder die Daten irgendwie zu casten, so dass ich die richtigen
> Werte bekomme?
>
> Die Datenbank selber kann ich nicht anrühren, so dass ich anstelle von
> varchar bei km_stand int angeben könnte.
Ich denke du suchst die Cast-Funktionen
http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html
untested:
SELECT MAX(CAST(km_stand AS DECIMAL)) as max_km_stand,
MIN(CAST(km_stand AS DECIMAL)) as min_km_stand FROM tankdaten
--
Marco Dieckhoff
icq# 22243433
GPG Key 0x1A6C95BA -- http://www.frankonia-brunonia.de/keys