2010-12-16 23 views
0

nehme an Ich habe eine Tabelle wieTsql Übersetzung

Id | IsActive 
1 | True 
2 | False 

und ich möchte Elementen suchen, die aktiv sind, nicht aktiv oder beide

würde Ich mag eine Abfrage haben

erklären @ActiveState Bit

Select * from myTable wo IsActive ...

und auf meinem where-Klausel würde ich so etwas wie

if(@ActiveState != null) 
    myTable.IsActive == @ActiveState 
else 
    myTable.ActiveState == true || myTable.ActiveState == false 

haben möchte, aber ich kann nicht einen Weg, dies zu tun auf dem gleichen where-Klausel

tks

+2

können Sie in Worte fassen, was Sie zu tun versuchen? Ich habe Probleme, Ihrem Code zu folgen. Wie kann etwas (von dem Beispiel, das du angegeben hast) aktiv, nicht aktiv oder beides sein? – Ramy

Antwort

1
select * from myTable where @ActiveState is null or IsActive = @ActiveState 
1
WHERE myTable.IsActive = @ActiveState OR @ActiveState IS NULL 
1

Where IsActive = IsNull(@ActiveState, IsActive)
finden oder
Where IsActive = Coalesce(@ActiveState, IsActive)