لتنفيذ هذه الوظيفة في SQL، يمكنك استخدام عبارات CASE
لإنشاء منطق الـ if-else. في حالتك، يمكنك استخدام الجملة التالية:
sqlSELECT *
FROM CUSTOMER
WHERE
CASE
WHEN :customer IS NOT NULL AND LENGTH(:customer) != 0 THEN CUSTOMER_ID LIKE CONCAT(:customer, '%')
WHEN :user IS NOT NULL AND LENGTH(:user) != 0 THEN USER_ID LIKE CONCAT(:user, '%')
WHEN :name IS NOT NULL AND LENGTH(:name) != 0 THEN NAME LIKE CONCAT(:name, '%')
END;
يرجى ملاحظة أنه يجب استبدال :customer
و:user
و :name
بالقيم المناسبة الممررة إلى الاستعلام من الكلاس الخاص بك في جافا.
تستخدم الجملة CASE هنا لتحقق من القيم الممررة من الكلاس الخاص بك. إذا كان العميل غير فارغ وليس له قيمة null ، فسيتم تطبيق شرط CUSTOMER_ID LIKE CONCAT(:customer, '%')
، وهكذا.
المزيد من المعلومات
بالطبع! الجملة CASE في SQL تسمح بتنفيذ منطق if-else في الاستعلام. يمكن استخدامها لإجراء اختبارات متعددة وتنفيذ عمليات مختلفة استنادًا إلى الشرط المطابق.
في النمط الأساسي، تأخذ الجملة CASE هيكلًا مشابهًا للجملة التالية:
sqlCASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
حيث تُقَدِّم condition1
و condition2
وما إلى ذلك شروطًا تقيم إلى صحيح (TRUE) أو خطأ (FALSE)، و result1
و result2
وهكذا تكون القيم التي يجب إرجاعها إذا كانت الشروط تنطبق. الـ default_result
هو قيمة يتم إرجاعها إذا لم تنطبق أي من الشروط.
في حالة الاستعلام الذي طلبته، يتم استخدام الجملة CASE داخل جملة WHERE لتحديد الشرط المناسب لتطبيقه على العمود المناسب (CUSTOMER_ID أو USER_ID أو NAME) استنادًا إلى القيم التي تم تمريرها من كلاس جافا الخاص بك.