Ich habe eine große Datenmenge, die aus einer Sicht in SQL Server 2012 zurückgegeben wird. Ich muss die Daten anhand von 6 verschiedenen Kriterien filtern. Ich habe Parameter im Bericht eingerichtet und möchte die Parameter in der Abfrage verwenden, um die Größe zu reduzieren.
So habe ich die folgende Situation:Case-Anweisung mit Platzhalter in Where-Klausel
select * from vw_ABC where p1 in @p1 and p2 in @p2 ...
Der schwierige Teil ist, wie eine Situation zu behandeln, in denen der Benutzer nicht auf eines der Kriterien filtern möchte. Ich versuche dynamisches sql zu vermeiden, aber wenn das der einzige Weg ist, sei es so.
Wenn der Bericht aufgerufen wird, werden dem Benutzer alle 6 Parameter angezeigt. Die Standardwerte sind 'ALL'. Sie können den Bericht mit einem oder allen Parametern erstellen. In den meisten Fällen wird es 2 oder 3 (Name Stadt PLZ Bestell-Dinge wie diese)
Jede Hilfe würde sehr geschätzt werden.
Sprechen Sie wirklich Kampf 'IN' ein Beispiel raben? Oder ist das eher 'where p1 = @ p1 ...'? –
wo (@ p1 = 'ALL' oder p1 = @ p1) und ... Kann Leistungsprobleme haben – Serg
Welche DBMS verwenden Sie? Bitte markieren Sie es. –