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