假设您在(国家,州)和(国家,城市)中有唯一键,您可以通过加入两次以简单的方式完成:
SELECT C.NAME, C.AGE, COALESCE(RN1.REG_NBR, RN2.REG_NBR) AS REG_NBR FROM CUSTOMER C LEFT OUTER JOIN REG_NBRS RN1 ON RN1.COUNTRY = RN1.COUNTRY AND RN1.STATE = C.STATE LEFT OUTER JOIN REG_NBRS RN2 ON RN2.COUNTRY = C.COUNTRY AND RN2.CITY = C.CITY WHERE C.ID BETWEEN 1000 AND 2000
此外,这应该比OR更快,数据库不太喜欢(至少有适当的索引)。