msSQL (69) 썸네일형 리스트형 [DB_MSSQL] 프로시저 실행 결과 테이블에 입력 프로시저를 실행 해서 출력된 결과를 테이블에 입력시켜보자 INSERT INTO 테이블명 EXEC 프로시저명 예제 EXEC USP_TEST_LIST @type='num1' USP_TEST_LIST 프로시저를 실행시켰을때 결과가 다음과 같다. 이 결과를 임시테이블 #TempTable에 입력시키려고 한다. -- 임시테이블 생성 CREATE TABLE #TempTable ( sDate VARCHAR(12) , eDate VARCHAR(12) ) -- 입력 INSERT INTO #TempTable EXEC USP_TEST_LIST @type='num1' 다음 쿼리를 수행하면 프로시저의 결과가 #TempTable에 입력된다. 결과를 확인해보자 [DB_MSSQL] return, break, goto RETURN, BREAK, GOTO RETURN쿼리 실행 종료 쿼리문을 수행하다가 RETURN;을 만나게되면 더 이상 다음 쿼리문을 수행하지 않고 끝이난다. 예제 DECLARE @Cnt INT = 500; -- 첫 번째 UPDATE문 UPDATE TEST_A SET 가격 = @Cnt WHERE Seq = 1 IF (@Cnt < 1000) BEGIN RETURN; -- 여기서 쿼리문을 빠져나감 -- 즉 아래에 있는 2번 쿼리문을 수행하지 않는다. END -- 두 번째 UPDATE문 UPDATE TEST_A SET 가격 = @Cnt WHERE Seq = 2 다음과 같은 쿼리문 실행 시 첫 번째 UPDATE문에 해당하는 쿼리문은 수행된다.그러나 @Cnt의 값이 500 이므로 RETURN; 을 만나게 되면서 두.. [DB_MSSQL] WHERE LIKE '%Parameter%' (LIKE절에 파라미터 사용) 조건절 LIKE 에서 파라미터값을 사용해보자 첫 번째 방법 LIKE '%' + @Parameter + '%' DECLARE @Str VARCHAR(10) = '문자' -- '문자' / NULL SELECT * FROM 테이블명 WHERE (@Str '' AND 컬럼명 LIKE '%' + @Str + '%') OR (@Str IS NULL AND 파라미터 없을때 조건) 두 번째 방법 SET @Parameter = '%' + @Parameter + '%' DECLARE @Str VARCHAR(10) = '문자' -- '문자'/ NULL SET @Str = '%' + @Str + '%' SELECT * FROM 테이블명 WHERE (@Str '' AND 컬럼명 LIKE @Str) OR (@Str IS NULL.. [MSSQL] 특정 기간에 해당하는 모든 날짜 (MASTER..SPT_VALUES) MASTER..SPT_VALUES 시스템 테이블을 이용하여 특정 기간 사이에 해당하는 모든 날짜를 출력해보자 MASTER..SPT_VALUES 시스템 테이블 type 컬럼의 값을 'P'로 조회했을때 number 컬럼의 데이터가 0~2047 (최대 2048행)의 값으로 출력된다. 이를 이용하면, 특정 기간 사이에 해당하는 모든 날짜 (최대 2048개)를 출력할 수 있다. 쿼리는 다음과 같다. SELECT CONVERT(VARCHAR, DATEADD(D, NUMBER, '시작일'), 112) FROM MASTER..SPT_VALUES WHERE TYPE = 'P' AND NUMBER [MSSQL] ORDER BY CASE (조건정렬) ORDER BY 구문 (정렬) 에 CASE 문을 사용하여 조건 정렬을 설정해보자 예제 다음과 같은 데이터가 들어있는 테이블이 있다. 이 테이블의 데이터를 정렬하고자 한다. 이때, 첫 문자가 A로 시작하는 데이터는 내림차순 (A3, A2, A1)으로 그리고 첫 문자가 B로 시작하는 데이터는 올림차순 (B1, B2, B3)으로 출력하고자 한다. WITH TEST_A (col1) AS ( SELECT 'A1' UNION ALL SELECT 'A2' UNION ALL SELECT 'A3' UNION ALL SELECT 'B1' UNION ALL SELECT 'B2' UNION ALL SELECT 'B3' ) SELECT * FROM TEST_A ORDER BY CASE WHEN col1 LIKE 'A%' THE.. 이전 1 ··· 7 8 9 10 11 12 13 14 다음