hallo,
ich stehe gerade etwas am Schlauch.
In einer Anwendung möchte ich möglichst viel beim einer Listenausgabe mit Parametern in einer einzigen SP lösen.
Tabelle beispielsweise mit Aufträgen
Felder: KundenID, Vorgangsdatum, VorgangsartID
Für jedes der genannten Felder soll es in der SP einen Parameter geben. Wenn NULL übergeben wird, soll dieser nicht im WHERE-Teil auftauchen oder nicht das Ergebnis eingrenzen.
Standard-SQL ungefiltert
SELECT * FROM tbl_Auftrag
Mein Ansatz um alle 3 Parameter in der SP unter zu bekommen ist dynamisches SQL. Aber ich es nicht irgendwie anders möglich, nicht zu filtern wenn NULL übergeben wird?
Ansatz:
geht das auch ohne dynamisches SQL?
ich stehe gerade etwas am Schlauch.
In einer Anwendung möchte ich möglichst viel beim einer Listenausgabe mit Parametern in einer einzigen SP lösen.
Tabelle beispielsweise mit Aufträgen
Felder: KundenID, Vorgangsdatum, VorgangsartID
Für jedes der genannten Felder soll es in der SP einen Parameter geben. Wenn NULL übergeben wird, soll dieser nicht im WHERE-Teil auftauchen oder nicht das Ergebnis eingrenzen.
Standard-SQL ungefiltert
SELECT * FROM tbl_Auftrag
Mein Ansatz um alle 3 Parameter in der SP unter zu bekommen ist dynamisches SQL. Aber ich es nicht irgendwie anders möglich, nicht zu filtern wenn NULL übergeben wird?
Ansatz:
Code:
SET @strSQL = ' SELECT * FROM tbl_Auftrag WHERE 1 = 1 ' IF KundenID IS NOT NULL SET @strSQL = @strSQL + ' AND KundenID = ' + CAST(@KundenID AS VARCHAR(50)) IF Vorgangsdatum IS NOT NULL SET @strSQL = @strSQL + ' AND Vorgangsdatum = ' + CAST(@Vorgangsdatum AS VARCHAR(50)) IF VorgangsartID IS NOT NULL SET @strSQL = @strSQL + ' AND VorgangsartID = ' + CAST(@VorgangsartID AS VARCHAR(50))
Comment