Ankündigung

Einklappen
Keine Ankündigung bisher.

Im SELECT NULL entfernen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • bendigo
    hat ein Thema erstellt Im SELECT NULL entfernen.

    Im SELECT NULL entfernen

    hallo

    Code:
    SELECT wkn,  If(AktW=Null,'',REPLACE(AktW,'.',',')) AS AktW, IF(AktWDatum='0000-00-00','',DATE_FORMAT(AktWDatum,'%d.%m.%Y')) AS AktWDatum FROM WertpapierblockAT WHERE (((WertpapierblockAT.LSCorrection) Between '2005-01-01 12:00:00' And '2005-12-01 12:00:00'))
    wie kann ich sagen das er bei dem Feld "AktW" bei NUll einen Leerstring macht?

    gruss
    pascal

  • bendigo
    antwortet
    @alle

    hab mich nur verschrieben

    so kann es nicht gehen:
    If(AktW=Null,'',REPLACE(AktW,'.',',')) AS AktW

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    @bendigo:

    dann teste doch mal folgende Abfrage, damit 'es' sichtbar wird:
    Code:
    SELECT
       AktW,
       If(AktW IS NULL ,'AktW is null !!!' ,REPLACE(AktW ,'.' ,',')) AS null_or_what
    FROM
       tabelle
    ~dilemma~

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Zitat von bendigo
    --> somit kann das nie funkt.
    If(AktW IS NULL ,'' ,REPLACE(AktW ,'.' ,',')) AS AktW
    Doch, das funktioniert. Nicht funktionieren würde es so:
    Code:
    IF(AktW = NULL, '', REPLACE(AktW, '.', ',')) AS AktW

    Einen Kommentar schreiben:


  • bendigo
    antwortet
    ein Satz ist zu diesem Thema zu erwähnen:

    In SQL ist der NULL-Wert im Vergleich mit jedem anderen Wert immer UNWAHR (false), selbst im Vergleich mit NULL. Ein Ausdruck, der NULL enthält, erzeugt immer einen NULL-Wert, ausser wenn es in der Dokumentation der Operatoren und Funktionen, die im Ausdruck beteiligt sind, anders angegeben ist. Alle Spalten im folgenden Beispiel geben NULL zurück

    --> somit kann das nie funkt.
    If(AktW IS NULL ,'' ,REPLACE(AktW ,'.' ,',')) AS AktW

    @dilemma
    bin wieder ein klein wenig intelligenter geworden

    Einen Kommentar schreiben:


  • bendigo
    antwortet
    @Zergling und @dilemma

    dank euch beiden. sorry wegen dem ewigen nachfragen, aber wer sich nicht traut zu fragen wird nie besser.

    dank euch nochmals

    pascal

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    @bendigo:
    Lies alles, was du hier findest:
    Code:
    http://dev.mysql.com/doc/refman/4.0/...with-null.html
    
    A.5.3. Probleme mit NULL-Werten
    
    NULL, Mit NULL-Werten arbeiten, Probleme mit NULL-Werten
    
        testen auf Null, Vergleichsoperatoren, Ablaufsteuerungsfunktionen
    
    NULL-Wert, Mit NULL-Werten arbeiten, NULL-Werte
    NULL-Werte im Vergleich mit leeren Werten, Probleme mit NULL-Werten
    NULL-Werte und AUTO_INCREMENT-Spalten, Probleme mit NULL-Werten
    NULL-Werte und Indexe, CREATE TABLE-Syntax
    NULL-Werte und TIMESTAMP-Spalten, Probleme mit NULL-Werten
    
    
    UND GANZ BESONDERS FOLGENDES:
    
    http://dev.mysql.com/doc/refman/4.0/...operators.html
    7.3.1.2. Vergleichsoperatoren
    
    Vergleichsoperationen ergeben einen Wert von 1 (TRUE), 0 (FALSE) oder NULL. Diese Funktionen funktionieren sowohl bei Zahlen als auch bei Zeichenketten. Zeichenketten werden bei Bedarf automatisch in Zahlen und Zahlen in Zeichenketten umgewandelt (wie in Perl oder PHP).
    ...
    ~dilemma~

    Nachtrag:
    sorry,
    ich meinte
    Lies alles, was hier mit NULL zu tun hat:
    Code:
    MySQL Doku(deutsch):   http://dev.mysql.com/doc/mysql/de/ix01.html
    
    NULL, Mit NULL-Werten arbeiten, Probleme mit NULL-Werten
    
        testen auf Null, Vergleichsoperatoren, Ablaufsteuerungsfunktionen
    
    NULL-Wert, Mit NULL-Werten arbeiten, NULL-Werte
    NULL-Werte im Vergleich mit leeren Werten, Probleme mit NULL-Werten
    NULL-Werte und AUTO_INCREMENT-Spalten, Probleme mit NULL-Werten
    NULL-Werte und Indexe, CREATE TABLE-Syntax
    NULL-Werte und TIMESTAMP-Spalten, Probleme mit NULL-Werten
    ~dilemma~

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Das zeigt dir, was der Vergleich in MySQL ergibt.

    mysql> SELECT 2*3; -> 6

    Einen Kommentar schreiben:


  • bendigo
    antwortet
    @dilemma

    mit der doku komm ich nicht ganz mit - könntest du mir das ein bisschen verdeutlichen - mysql> SELECT 1 = 1 , Null = Null ...

    was will man damit aussagen?

    gruss
    pascal

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Code:
    Folgendes ist schlecht:
    
    If(AktW=Null,'',REPLACE(AktW,'.',',')) AS AktW
    
    weil laut MYSQL-Doku:
    
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;    -> 1, NULL, NULL
    Besser wäre folgendes:
    Code:
    If(AktW IS NULL ,'' ,REPLACE(AktW ,'.' ,',')) AS AktW
    In der MYSQL-Docu kannst du folgendes finden:

    mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL; -> 0, 0, 1

    mysql> SELECT IFNULL(1,0); -> 1
    mysql> SELECT IFNULL(NULL,10); -> 10
    mysql> SELECT IFNULL(1/0,10); -> 10
    mysql> SELECT IFNULL(1/0,'yes'); -> 'yes'

    ~dilemma~

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Ups, sorry

    Einen Kommentar schreiben:


  • Ricochet
    antwortet
    Geht viel einfacher :
    SELECT IFNULL(AktW, ' ') AS AktW

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Um zu überprüfen, ob eine Spalte den "Wert" NULL hat (also keinen Wert hat) müsst ihr den Operator IS NULL verwenden.

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    War doch schon richtig?!

    Code:
    IF(Bedingung, Dann, Sonst)
    Also:

    Code:
    IF(AktW = NULL, "", REPLACE(AktW, ".", ",")) AS AktW
    Wenn AktW den Wert NULL hat, weise einen Leerstring zu, ansonsten ersetze in AktW alle Punkte durch Kommas.

    Einen Kommentar schreiben:

Lädt...
X