Eine Tabelle enthält Sequenznummern und Zeitstempel und andere Daten. Eine gespeicherte Prozedur benötigt 2 Parameter und der Benutzer kann eine Nullsequenznummer übergeben.WHERE-Klausel auf einem der beiden Parameter
Das ist, was ich zu erreichen versuchen, aber es funktioniert nicht (sagt SQL falsche Syntax in der Nähe von>)
create proc dbo.MyProc(@SequenceNo int, @Timestamp datetime) as
begin
select * from MyTable where
case when @SequenceNo is not null THEN SequenceNo > @SequenceNo
ELSE Timestamp > @Timestamp
end
end
Wie dies zu tun?
Ich habe, aber ich dachte, dass es Standard-SQL- – CashCow
Anstelle würde Wert zuweisen in 'THEN' Teil, warum überprüfen Sie Ausdruck für größer als?, Sie können eine wahre False, 1 oder 0, oder einen anderen Wert Ihrer Wahl hier – Saurabh
zuweisen Es soll bedeuten, dass, wenn & SequenceNo nicht null dann ist Verwenden Sie dies als Grundlage für die Bedingung, andernfalls verwenden Sie Timestamp. SequenceNo> & SequenceNo sollte eine Bedingung von True oder False zurückgeben. Wenn false, möchte ich, dass diese Zeile übersprungen wird. Ich möchte keine weiteren Fälle versuchen. (ersetzen & mit dir wissen, was) – CashCow