보통 이와 같은 경우 떠올리는 구문은 LIKE '%text%' 구문이다. 이 구문 사용 시 %% 안에 있는 text를 포함하면 해당 행을 추출한다. 그러나 LIKE 구문은 조건을 하나밖에 걸 수 없다는 단점이 있다.
이때 정규식을 이용하면 LIKE 구문을 여러 줄 작성하지 않고도 한 줄의 쿼리로 동일한 결과를 얻을 수 있다.
아래 쿼리는 ANIMAL_INS라는 테이블에서 SEX_UPON_INTAKE 변수에 'Neutered' 또는 'Spayed'라는 단어가 들어가는 데이터를 O으로 치환하여 '중성화여부'라는 변수를 만드는 코드이다.
SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' THEN 'O' WHEN SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O' ELSE 'X' END AS 중성화여부 FROM ANIMAL_INS;
여기서 LIKE 구문은 다중 조건 설정이 불가하므로 조건을 두 번 작성하게 된다.
이때, 다음과 같은 정규식 쿼리를 사용하면 코드 중복을 피할 수 있다.
SELECT ANIMAL_ID, NAME, CASE WHEN (SEX_UPON_INTAKE REGEXP ('Neutered|Spayed')) THEN 'O' ELSE 'X' END AS 중성화 FROM ANIMAL_INS;