Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Stored Procedure Parameter nicht immer gefüllt

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von tomduess, 15 September 2021.

  1. tomduess

    tomduess Neuer Benutzer

    Guten Tag,

    ich arbeite in einer Stored Procedure mit einem Parameter, der aber nicht immer gefüllt sein muss:
    zb

    Select Number from tblPerson where Landcode = @intCode

    Ich suche nun eine Möglichkeit, dass wenn die Variable mit keinem Wert oder zb mit einem festen Wert (0) alle Personen zurückgegeben werden und wenn sie gefüllt ist, dann nur die Personen aus dem entsprechendem Land zurückgegeben werden. Wie muss dann die Prozedure aussehen?
    Vielen Dank
    Thomas
     
  2. dabadepdu

    dabadepdu Datenbank-Guru

    In Oracle gibt es eine nette, schlange Funktion für sowas: Decode
    In MS SQL müsstest Du in der Where Condition ein Case When einsetzen.
     
  3. akretschmer

    akretschmer Datenbank-Guru

    kannst du da mal ein Beispiel zeigen?
     
  4. dabadepdu

    dabadepdu Datenbank-Guru

    --gelöscht--
    Auch alles Quatsch
    z.B.
    WHERE feld = IIF(@intCode IS NULL, feld, @intCode)
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Code:
    edb=*# select * from foo;
     id | data
    ----+------
      1 |    1
      2 |     
    (2 rows)
    
    edb=*# select * from foo where case when 1=2 then data=1 else true end;
     id | data
    ----+------
      1 |    1
      2 |     
    (2 rows)
    
    edb=*# select * from foo where case when 1=1 then data=1 else true end;
     id | data
    ----+------
      1 |    1
    (1 row)
    
    edb=*#
    
    Die Prüfung könnte man ja auch auf Prüfung auf NULL machen.
     
  6. tomduess

    tomduess Neuer Benutzer

    Vielen Danke, ich habe mit CASE , welches ich in der WHERE-Clausel einsetzte, eine Lösung gefunden. Ich hatte dieses nur im SELECT-Bereich auf dem Schirm :)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden