SQL

MS-SQL 동적(Dynamic) 쿼리 대신에 사용할 수 있는 쿼리 작성법

100ksoft 2023. 12. 19. 13:03

1. SELECT TOP 갯수를 변수로 받아서 사용하는 방법

Declare @ROW_COUNT int = 30

SELECT
 TOP(@ROW_COUNT) 
 *
FROM [테이블명]

2. WHERE 조건에 변수 있으면 해당 컬럼이 검색되고, 값이 없으면 전체가 검색되는 방법 

parameter @USE_FLAG_IN

SELECT 
	*
FROM
	[테이블명]
WHERE
    ((@USE_FLAG_IN = '' AND 1=1) OR (@USE_FLAG_IN <> '' AND USE_FLAG = @USE_FLAG_IN))
    AND CO_CODE = @CO_CODE
    AND DIV_CODE = @DIV_CODE						
ORDER BY 
    FULL_ORDER

3. WHERE 조건에 검색구분, 검색 값을 동적으로 받아서 사용하는 방법

DECLARE   @SEARCH_ID NVARCHAR(50) = 'ACTOR'
,		  @SEARCH_VALUE NVARCHAR(50) = '홍길동'

SELECT
	*
FROM 
	[테이블명]
WHERE	1 = 1
    AND (	-- 검색 구분을 동적쿼리 대신에 CASE문으로 표현	        
        CASE @SEARCH_ID 
            WHEN 'ACTOR' THEN act_name
            WHEN 'DEPT' THEN dept_code			
        END
    ) LIKE '%' + @SEARCH_VALUE + '%'