2017-06-14 32 views
0

Ich möchte eine Abfrage schreiben, die Datensätze nach einer Reihe von verschiedenen Bedingungen auswählt und die Operatoren AND und OR verwendet.Kombinieren von UND ODER-Anweisungen in Postgres

Wenn ich beispielsweise die folgende Abfrage schreibe, wie behalte ich die ersten beiden Bedingungen (network_id = 1 and payment_plan_id = 77), ohne sie nach der OR Anweisung umzuschreiben?

select * from transactions where network_id = 1 and payment_plan_id = 
77 and payment_type = 'Subscription' OR payment_type = 'Renewal' 
+0

Es sei denn, ich bin Missverständnisse zu vermeiden Deine Frage, yo Sie können die OR-Anweisung einfach in Klammern einschließen: Wählen Sie * aus Transaktionen aus, wobei network_id = 1 und payment_plan_id = 77 und (payment_type = 'Subscription' ODER payment_type = 'Renewal') ' – RToyo

Antwort

1

Verwenden IN die Klammer Verwirrung

select * from transactions 
where network_id = 1 
and payment_plan_id = 77 
and payment_type IN ('Subscription' , 'Renewal') 
2

Verwenden Sie Klammern:

select * 
from transactions 
where network_id = 1 and payment_plan_id = 77 and 
     (payment_type = 'Subscription' OR payment_type = 'Renewal') 

Oder, noch besser, verwenden in:

select * 
from transactions 
where network_id = 1 and payment_plan_id = 77 and 
     payment_type in ('Subscription', 'Renewal')