2016-12-14 1 views
0

mir jemand mit dieser Probe Aussage helfen könnte:SQL Server Vereinfachen WHERE-Klausel

declare @test int = 5 
declare @temp table (id int, name varchar(20)) 

insert into @temp 
values (1,'John'), (1,'Jenny') 

if (@test = 5) 
begin 
    select * 
    from @temp a 
    where a.id = 1 
     and a.name ='Jenny' 
end 
else 
begin 
    select * 
    from @temp a 
    where a.id = 1 
end 

Ich bin ziemlich sicher, dass es einfacher mit nur einem SELECT geht und IF oder CASE in WO.

Irgendwelche Ideen?

Vielen Dank im Voraus!

+0

Bitte beschreiben Sie, was die Logik tun soll. Kennzeichnen Sie außerdem Ihre Frage mit der von Ihnen verwendeten Datenbank. –

Antwort

1

Ich glaube, Sie wollen diese:

select a.* 
from @temp a 
where a.id = 1 and 
     (a.name = 'Jenny' or @test <> 5); 

Hinweis: Wenn Sie erwarten, dass @testNULL sein könnte, muss die Logik als auch das berücksichtigen.