2017-06-08 2 views
0

Select * From table1.
wenn table1.field1=1 dann Exklusionsverknüpfung table2
sonst, wenn table1.field1=2 dann Exklusionsverknüpfung table3Ist es möglich, diese Abfrage zu generieren?

+0

Das macht keinen Sinn. Stattdessen - erklären Sie, was Sie erreichen möchten. – zerkms

+0

Ihre Logik deutet an, was Sie wollen, aber was sind die Join-Bedingungen zwischen den Tabellen? –

+0

Um Ihre Frage zu beantworten. Nein. Ihre Anfrage ergibt keinen Sinn. Sie können die Case-Anweisung als Ersatz für die Bedingung if-else verwenden, oder die Antwort von @ zohar scheint zu beantworten, was Sie bei Ihrer Abfrage erreichen möchten. – kimdasuncion12

Antwort

2

Ich glaube, Sie suchen etwas wie dies, obwohl es aus Ihrer Frage nicht ganz klar ist:

SELECT * 
FROM table1 t1 
LEFT JOIN table2 t2 ON <join condition> AND t1.field1 = 1 
LEFT JOIN table3 t3 ON <join condition> AND t1.field1 = 2 
1
SELECT glbank.check_num 
, glbank.ref_num 
, glbank.check_amt 
, glbank.check_date 
, glbank.bank_code 
, vendaddr.name 
, vendor.vend_num 
, vendor.vend_remit 
FROM ((aptrxp_all 
INNER JOIN glbank 
ON aptrxp_all.check_num=glbank.check_num) 
INNER JOIN vendaddr 
ON aptrxp_all.vend_num=vendaddr.vend_num) 
INNER JOIN vendor 
ON vendaddr.vend_num=vendor.vend_num 
If vendaddr.vend_num=vendor.vend_num Then 
(SELECT vendaddr.name 
FROM vendaddr 
INNER JOIN vendor 
ON vendaddr.vend_num=vendor.vend_num where vendaddr.vend_num=vendor.vend_num) 
Else (SELECT vendaddr.name 
FROM vendaddr 
INNER JOIN vendor 
ON vendaddr.vend_num=vendor.vend_remit where 
vendaddr.vend_num=vendor.vend_remit) 
end 
where glbank.check_amt= @amount 
Verwandte Themen