2016-12-05 4 views
0

Lasst uns sagen, ich habe folgende Tabelle:SQL Server - wo Fälle um

ID | condition1 | condition2 
1 | Y   | 0 
2 | N   | 0 
3 | Y   | 1 
4 | N   | 1 

ich für eine Abfrage bin auf der Suche, die mir die Ergebnisse gibt, wo condition1 gleich Y. Aber, wenn es nicht gleich Y tut, ich möchte condition2 überprüfen und diejenigen zu meinem Ergebnis hinzufügen, wo condition2 1.

gleich So würde mein Ergebnis sein:

ID | condition1 | condition2 
1 | Y   | 0 
3 | Y   | 1 
4 | N   | 1 

Irgendwelche Vorschläge/Ideen?

EDIT: Ich habe gerade festgestellt, dass mein Problem nicht so einfach ist wie das Beispiel, das ich geben wollte. (Völlig meine eigene Schuld). Da es mehrere Antworten gibt, die eine Lösung für diese (falsche) Frage geben, werde ich sie nicht bearbeiten, sondern sie einfach so lassen, wie es für den Fall ist, dass jemand sie in der Zukunft braucht.

+0

Wenn Sie zwei Bedingungen haben aber nur muss man erfüllt sein, es ist ein klassisches 'OR ' –

Antwort

4
CREATE TABLE #B 
    ([ID] INT, [CONDITION1] VARCHAR(1), [CONDITION2] INT) 
; 

INSERT INTO #B 
    ([ID], [CONDITION1], [CONDITION2]) 
VALUES 
    (1, 'Y', 0), 
    (2, 'N', 0), 
    (3, 'Y', 1), 
    (4, 'N', 1) 
SELECT [ID], [CONDITION1], [CONDITION2] FROM #B WHERE [CONDITION1]='Y' OR [CONDITION2]=1 

Ausgang

ID condition1 condition2 
1 Y 0 
3 Y 1 
4 N 1 
+1

ich gerade merke ich gefragt meine Frage ist falsch. Sie haben jedoch eine gute Antwort auf meine falsche Frage gegeben, also werde ich diese als die Lösung markieren und die Frage hier lassen, falls jemand sie jemals brauchen sollte. Danke für die Hilfe: P – DenStudent

1

Try this:

SELECT ID, condtition1, condition2 
    FROM YourTable 
    WHERE condition1 = 'Y' 
     OR (condition1 != 'Y' AND condition2 = 0); 
Verwandte Themen