#sql #oracle
#sql #Oracle
Вопрос:
Я пытаюсь отобразить всех поставщиков, у которых первый адрес является почтовым ящиком, но я затрудняюсь, как отформатировать его с помощью LIKE. В моей таблице поле запроса может быть отформатировано любым из этих 3 способов, но я не уверен, как включить все 3 в LIKE. То, что у меня сейчас есть, выдает мне ошибку «отсутствует правая скобка»
SELECT vendor_name, vendor_address1, vendor_address2
FROM ap_vendors
WHERE vendor_address1 LIKE ('PO Box%', 'P. O. Box%', 'P O Box%')
Ответ №1:
Вы можете использовать регулярные выражения:
WHERE regexp_like(vendor_address1, '^(PO Box|P. O. Box|P O Box)')
Или несколько LIKE
шаблонов:
WHERE vendor_address1 LIKE 'PO Box%' OR
vendor_address1 LIKE 'P. O. Box%' OR
vendor_address1 LIKE 'P O Box%'
Ответ №2:
Кажется, что то, что вы хотите, это логика OR
Вы можете сделать это следующим образом:
SELECT vendor_name, vendor_address1, vendor_address2
FROM ap_vendors
WHERE vendor_address1 LIKE 'PO Box%'
OR vendor_address1 LIKE 'P. O. Box%'
OR vendor_address1 LIKE 'P O Box%'