안녕하세요 SQL 쿼리에서 바운드변수 관련하여 문의드립니다.
기존에 조건문에서
예시) v = '01', '02', '03', '04' AND NVL(:v, '%')
해당 예시처럼 v에는 입력값을 받거나 %는 전체로 지정해놓아서 null일경우 '%'전체로 데이터가 추출되게 조건문을 걸어놓았었습니다.
기존에는 v에 값으로 하나의 값만 받았는데 이번에는 01과02, 02와03 이런식으로 2개이상의 데이터 값을 받으려고 하는데 혹시 어떤 LIKE를 이용해서 하거나
다른 방법이 있을까요? (v에 입력받을 수 있는 값은 최소 2개 ~ 최대 4개입니다. '01','02','03','04' 4개의 값을 모두 받을때는 전체로 데이터가 추출되게 하는 조건문입니다.)
-- '01,02,03' 형태로 들어온다고 가정 -- 4개 값만 있다면 인덱스 사용 등의 성능향상은 무의미할 것 같습니다. (성능 무시) SELECT * FROM t WHERE INSTR(:v, v) > 0 ;
알림 설정을 안해놔서 지금 확인했네요....ㅎ 감사합니다 마농님 한가지 여쭤보고 싶은점이 전체를 어떻게 받느냐에 따라서 WHERE절을 WHERE INSTR(NVL(:v, v), v) > 0 이렇게 작성해도 쿼리상으로는 문제가 없을까요?
아무런 값도 들어오지 않는다고 가정을 했을때 NULL을 전체로 받고 싶어서요