Abfrage SQL korrekt?

Von: , Frage gestellt am Mo, 29. Nov 2004

(SUBSTRING (MSGLINE FROM 1 FOR 4) = '0069' AND
NOT (DX_SO_Kennzeichen1_1 = '4' OR DX_SO_Kennzeichen1_1 = '5'))

-- Die MSGLINE ist von STelle 1 bis 4 '0069'
-- Das Kennzeichen darf gelichzeitig nicht 4 oder 5 sein,
-- dann ist die Bedingung erfüllt

Gibt das dieser Code wieder?

Vielen Dank und Grüße
Fred

4 Antworten zu dieser Frage

  1. Antwort von nach 17 Stunden 1 hilfreich
    Re: Abfrage SQL korrekt?

    Wenn der SQL-Syntax so richtig ist: Ja.

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Abfrage SQL korrekt?

      Warum nicht so:

      (SUBSTRING (MSGLINE FROM 1 FOR 4) = '0069' AND
      DX_SO_Kennzeichen1_1 NOT IN('4', '5')

      wenn es vermeidbar ist, sollte man weniger negative Logik usw....:

      (SUBSTRING (MSGLINE FROM 1 FOR 4) = '0069' AND
      DX_SO_Kennzeichen1_1 <> '4' AND DX_SO_Kennzeichen1_1 <> '5'))


      Gruß Andreas

      • Antwort von nach einem Tag 0 hilfreich
        kleines veto

        (SUBSTRING (MSGLINE FROM 1 FOR 4) = '0069' AND
        DX_SO_Kennzeichen1_1 <> '4' AND DX_SO_Kennzeichen1_1
        <> '5'))
        so würden (evtl gültige) Texteingaben fehlschlagen. Aber warum nicht != verwenden?

        • Antwort von nach 6 Tagen 0 hilfreich
          Re: kleines veto

          Du meinst Eingaben mit "Spaces" ? Dafür kannst Du im Ausdruck
          LTRIM / RTRIM / oder TRIM
          verwenden um Leerzeichen aus dem Filter auszuklammern, oder welche
          Texteingaben erwartest Du noch ? Mit den Wildcards kannst Du
          ja bequem nach einem "Muster" suchen, dafür verwendest Du den
          LIKE Operator (z.B. LIKE('%4%')).

          !! (Nicht nicht)zu verwenden ist eine Angewohnheit.
          <> überliest man nicht so leicht wie !=.


          Gruß Andreas [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!