728x90
SELECT 1 FROM 테이블명
테이블의 행의 갯수만 큼 1을 반환
# 예시
SELECT * FROM QUOTES;
[ 결과 ]
SELECT 1 AS TEST
FROM QUOTES;
[ 결과 ]
QUOTES 테이블의 행의 갯수만큼 1이 출력된다
어떤 상황에서 사용할까?
- 값의 존재여부를 확인하는 경우
SELECT CASE WHEN EXISTS
(
SELECT 1
FROM QUOTES
WHERE CATEGORY = '인생'
)
THEN 'TRUE'
ELSE 'FALSE'
END AS CATEGORY_EXISTS;
[ 결과 ]
- 서브쿼리에서 사용하는 경우
"USER" 테이블의 "USER_ID"가 1이고, "ROLE_DTL" 테이블에 존재하는 사용자의 ID와 일치하는 경우를 조회하는 쿼리
SELECT USER_ID
FROM USER
WHERE USER_ID = 1
AND USER_ID IN (
SELECT 1
FROM ROLE_DTL
);
[ 결과 ]
1 개 존재한다는 뜻이아닌, 존재하는 행이 존재하므로 1 이 1행만 출력됨
( 만약 2개 존재하면 1이 2행 출력 )
ROLE_DTL 테이블 조회
[ 결과 ]
USER_ID = 1 이 1개 존재
- 동적쿼리에서의 조건문
SELECT USER_ID, USERNAME
FROM USER
WHERE 1=1;
이렇게하면 무엇이든 결과를 리턴하게 된다
주로 동적으로 조건을 추가하기 쉬운 구조를 만들 때 사용된다
WHERE 1 = 1
실제로 필요한 조건이 없는 경우에는 WHERE 1=1을 사용하는 것은 쿼리의 가독성을 낮출 수 있습니다. 대부분의 경우에는 실제 필요한 조건을 명시적으로 작성하는 것이 더 좋은 방법입니다.
728x90
'Oracle' 카테고리의 다른 글
디비버(DBeaver) 에서 Oracle 연결 ( localhost 의 경우 ) (0) | 2024.03.04 |
---|---|
sqldeveloper | 데이터베이스 접속 오류 (0) | 2023.06.08 |
Oracle | JOIN 에서 KEY의 관계 (0) | 2023.06.02 |
Oralce | COALESCE 함수 (0) | 2023.06.02 |
Oracle | SUBSTR() 문자열 자르는 함수 / 연결 연산자 || (1) | 2023.06.01 |