Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#3

Re: MSSQL: WHERE in Stored Procedure "optional gestalte

  Alt 14. Feb 2005, 17:55
Hmmm ja ,

das Beispiel war etwas unglücklich formuliert.

Anders ...

Ich versuche die WHERE Clause in Abhängigkeit von den übergebenen Parametern individuell zu gestalten.
"Unbenutzte Parameter" könnte man mit % oder IS NOT NULL o.Ä. "unschädlich" machen aber
darauf möchte ich möglichst verzichten ...

Dieses Beispiel ist besser ...

SQL-Code:
CREATE PROCEDURE TEST
  @SearchByID BIT = 0
  @SearchByName BIT = 0
  @ID UNIQUEIDENTIFIER = NULL
  @Nachmane VATCHAR(20) = NULL
AS
BEGIN
     SELECT bla, bla1, bla2
     FROM Tabelle1
     -- ab hier wirds interessant
     -- geht so nicht ...
     WHERE CASE WHEN @SearchByID=1 --Wenn SearchByID = 1 übergeben wurde WHERE Clause auf ID=@ID setzen
                THEN ID=@ID
                ELSE
                  CASE WHEN @SearchByName=1 --Wenn SearchByName = 1 übergeben wurde WHERE Clause
                       THEN Name=@Nachname --auf Name@Nachname setzen
                       ELSE ID IS NOT NULL -- sonst alle suchen (da ID in Tabelle1 nie NULL ist)
                  END
           END
END


  Mit Zitat antworten Zitat