WHERE 1=1
WHERE 1=1 는 항상 참인 조건이다
("WHERE 1=1"조건은 상수 값 1을 항상 동일한 자신과 비교하기 때문에 참이다)
쿼리 디버깅과 쿼리를 동적으로 구성하거나
WHERE 절에 조건을 추가하는 프로세스를 단순화 하는 방법으로 사용된다.
이 조건을 쿼리에 포함하면 사실상 아무런 영향을 미치지 않는다. 넣어도 되고 안넣어되고 개발자 마음
그러나 초기 조건에 대해 AND또는 OR 연산자를 사용해서 추가 조건을 넣기 위한 시작점이라고 생각하면 될듯하다
WHERE 1=1로 시작하면 요구 사항에 따라 AND 또는 OR 를 사용해서 후속 조건을 쉽게 추가할수있다는 장점이 있다
쿼리 디버깅을 할 때 WHERE 1=1을 사용하면 조건을 수정하기가 쉬워서 사용한다
이렇게 사용할때랑
이렇게 사용하면 동적 쿼리를 작성할 때 조건을 유연하게 추가할 수 있다
어떠한 기준에 따라 조건을 추가하거나 제거하려면
첫번째 조건인가? 생각할 필요없이 WHERE 1=1뒤에 추가하거나 제거하면 그만이다.
그래서 쿼리의 동적 구성보다 간단하게 만들고 불필요한 코드 복잡성을 방지.
[정리]
WHERE 1=1은 항상 참인 조건이므로 쿼리에 추가해도 쿼리 결과에 영향을 주지않는다
그러나 쿼리 디버깅과 동적 쿼리를 작성할 때 유용할 수 있습니다.
그래서 사실 필요하지 않은 부분이라서 삭제해도 상관없음
개인의 취향에 따라 사용하면 될 것 같다
반응형
'IT > ORACLE' 카테고리의 다른 글
[ORACLE] ROW_NUMBER() 중복되는데이터는 하나로 처리하기 (그룹별로 순번을 지정하여 하나의 행만 추출) (0) | 2023.06.30 |
---|---|
[ORALCE] NVL2 으로 NULL 값 처리하기 (0) | 2023.05.16 |
오라클 원하는 위치의 문자열만 추출하기 SUBSTR 함수 사용하기 (0) | 2023.05.08 |
[ORACLE] NVL 함수 사용법 - null값을 기본값으로 대체 하기 (0) | 2023.05.08 |
[ORACLE] 원본 테이블에 다른 테이블 병합하기 MERGE INTO 문 사용하기 (0) | 2023.05.04 |