在“喜欢”中包含多个选择

时间:2019-03-04 16:18:06

标签: sql oracle

我正在尝试向所有供应商展示第一个地址是邮政信箱的地址,但是我正在努力如何使用LIKE格式化该地址。在我的表中,PO Box可以采用这三种方式中的任何一种进行格式化,但我不确定如何将这三种方式都包括在内。我目前在这里遇到的错误使我出现“缺少右括号”错误

SELECT vendor_name, vendor_address1, vendor_address2
FROM ap_vendors
WHERE vendor_address1 LIKE ('PO Box%', 'P. O. Box%', 'P O Box%')

2 个答案:

答案 0 :(得分:3)

您似乎想要的是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%'

答案 1 :(得分:3)

您可以使用正则表达式:

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%'