[ORACLE]오라클_ESCAPE(LIKE시 '%' , ' _ ' 포함된 문자 검색)
SQL에서 자주 접하게 되는 문법 중 하나인 LIKE문에는 이스케이프라는 기능이 존재한다.
%, _ 이 둘은 와일드카드로써 LIKE문에서 사용되는데 (%는 임의의 개수의 문자, _는 1개의 임의의 문자) 경우에 따라 이들 자체가 LIKE문에 포함되어야 하는 경우가 있다
컬럼의 값이 언더스코어('_')를 포함하지 않는 경우만 출력하는 쿼리를 작성해주세요.
이럴 때, 파이썬이라면 '\'를 사용해서 이스케이프를 수행하지만, SQL은 사용자가 별도로 이스케이프 문자를 지정해주고 이를 사용해야 한다.
SELECT
distinct page_location
FROM
ga
WHERE
NOT (page_location like '%n_%' escape 'n')
ORDER BY
page_location
;
나의 경우 n이 편하기에 n을 이스케이프 문자로 사용했으나 T, g와 같이 자신이 원하는 문자를 이스케이프 용도로 사용할 수 있다.
다만 복수의 문자열을 사용하면 쿼리가 제대로 작동하지 않을 수 있으니 유의
