bekam ich ein Problem in Stored Procedure:SQL Server: Wie kann ich das Ergebnis der Tabelle auswählen, wenn die Bedingung FALSE ist?
SELECT * FROM TESTTABLE
WHERE COUNT = CASE WHEN (@count = -1) THEN --SELECT ALL RESULT OF TESTTABLE--
ELSE @count END
Wenn param @count nicht gleich -1 ist, möchte ich diese Abfrage das gleiche mit ist:
SELECT * FROM TESTTABLE
ich mit
versuchtSELECT * FROM TESTTABLE
WHERE COUNT = CASE WHEN (@count <> -1) THEN @count END
Aber es ist nicht wahr.
WHERE @Count = -1 oder [Count] = @ Count', aber es wird wahrscheinlich Sie etwas schlechte Leistung. In diesem Fall sollten Sie dynamisches SQL verwenden. – Lamak
Wahr, ich würde hier ein Objekt verwenden. –
Warum teilen Sie sie nicht einfach mit einer IF-Anweisung? 'IF (@count = -1) BEGIN SELECT * FROM ... ENDE ELSE BEGIN SELECT * FROM Tabelle WHERE COUNT = @ count' –