울음참고 개발공부
article thumbnail
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
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!