При объединении NOT LIKE
следует использовать AND
вместо OR
select distinct pcl_mun
from exemptions.modiv_parcels_2015
where pcl_mun NOT LIKE '10%'
AND pcl_mun NOT LIKE '18%'
order by pcl_mun
Это логичная вещь, которая иногда может сбить с толку.
Упрощенные примеры:
('18' NOT LIKE '10%') OR ('18' NOT LIKE '18%') --> true OR false --> true
('18' NOT LIKE '10%') AND ('18' NOT LIKE '18%') --> true AND false --> FALSE
('14' NOT LIKE '10%') OR ('14' NOT LIKE '18%') --> true OR true --> TRUE
('14' NOT LIKE '10%') AND ('14' NOT LIKE '18%') --> true AND true --> TRUE
Потому что это отличается от отрицания комбинации LIKE
.
Тогда вместо этого следует использовать OR
.
NOT ('18' LIKE '10%' OR '18' LIKE '18%') --> NOT(false OR true) --> FALSE
NOT ('18' LIKE '10%' AND '18' LIKE '18%') --> NOT(false AND true) --> true
NOT ('14' LIKE '10%' OR '14' LIKE '18%') --> NOT(false OR false) --> TRUE
NOT ('14' LIKE '10%' AND '14' LIKE '18%') --> NOT(false AND false) --> TRUE