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

  • 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

  • #2
    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.

    Kommentar


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

      Kommentar


      • #4
        Geht viel einfacher :
        SELECT IFNULL(AktW, ' ') AS AktW
        Tabellenlayouts sind out, Browsergames sind schei$$e und die Erde ist eine Scheibe.

        Kommentar


        • #5
          Ups, sorry

          Kommentar


          • #6
            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~

            Kommentar


            • #7
              @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

              Kommentar


              • #8
                Das zeigt dir, was der Vergleich in MySQL ergibt.

                mysql> SELECT 2*3; -> 6

                Kommentar


                • #9
                  @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~

                  Kommentar


                  • #10
                    @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

                    Kommentar


                    • #11
                      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

                      Kommentar


                      • #12
                        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

                        Kommentar


                        • #13
                          @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~

                          Kommentar


                          • #14
                            @alle

                            hab mich nur verschrieben

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

                            Kommentar

                            Lädt...
                            X