Начало здесь
Как лучше оформлять несколько условий в select where?
Прошу переголосовать с измененными формулировками.
В коде часто встречаются select c несколькими условиями (условными выражениями).
Как лучше оформлять несколько условий в select where?
Вариант 1. (операторы после условия)
X++:
select firstonly paymentTrans
where paymentTrans.AccountNum == factureJour.CustVendInvoiceAccount &&
paymentTrans.Voucher == factureJour.Voucher &&
paymentTrans.CurrencyCode == factureJour.CurrencyCode &&
paymentTrans.PrepaymentFactureId_W == factureJour.FactureId &&
paymentTrans.Prepayment == NoYes::Yes;
Вариант 2. (операторы до условия)
X++:
select firstonly paymentTrans
where paymentTrans.AccountNum == factureJour.CustVendInvoiceAccount
&& paymentTrans.Voucher == factureJour.Voucher
&& paymentTrans.CurrencyCode == factureJour.CurrencyCode
&& paymentTrans.PrepaymentFactureId_W == factureJour.FactureId
&& paymentTrans.Prepayment == NoYes::Yes;
Как вы предпочитаете ставить операторы между условиями?
Перед условием или после условия?
Почему?
А в более сложны случаях? Например,
X++:
while select bankClientPayment_RU
where bankClientPayment_RU.RContractAccount
notexists join RContractTable
where (
( RContractTable.RContractPartnerType == RContractPartnerType::Cust
&& BankClientPayment_RU.PartnerType == ModuleCustVend::Cust )
|| ( RContractTable.RContractPartnerType == RContractPartnerType::Vend
&& BankClientPayment_RU.PartnerType == ModuleCustVend::Vend )
)
&& RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount
&& RContractTable.RContractCode == bankClientPayment_RU.RContractCode
Добавлено: понятно, что при правке существующих select'ов скорее всего будете оставлять так как есть. Вопрос как вы предпочитаете, когда сами создаете select'ы