목록MSSQL (138)
투케이2K

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [IIF 사용해 조건 비교 실시 (if, else 유사)] 1. IIF(조건, 같을 시 출력, 다를 시 출력) 2. A와 B가 같으면 TRUE, 다르면 FALSE 출력 의미입니다 3. MSSQL IIF() 함수는 ORACLE DECODE 함수와 유사한 동작을 수행합니다 */ -- [FALSE 출력] SELECT IIF('A' = 'B','TRUE','FALSE') as 조건확인; -- [TRUE 출력] SELECT IIF('A' = 'A','TRUE','FALSE') as 조건확인; [결과 출력]

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [where 절에서 case when then 조건문을 사용해 특정 데이터 출력 실시] 1. case when then else : 특정 조건을 만족하는 경우를 확인하고, 분기처리를 수행할 수 있습니다 2. 로직 : T_DEPT 값이 백제, 후백제 인 경우 1 값을 반환하며, 그렇지 않은 경우는 0 값을 반환합니다 */ SELECT T_NAME, T_DEPT FROM TEST_USER WHERE (CASE WHEN T_DEPT = '백제' THEN 1 WHEN T_DEPT = '후백제' THEN 1 ELSE 0 END) = 1 -- 1값을 만족하는 데이터만 출력 ORDER BY T_DEPT DESC; [결과 출력..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [like 조건 절에 정규식 적용해 특정 문자 패턴을 만족하는 데이터 출력 실시] 1. [ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9] : 한글, 영어, 숫자를 포함하는 데이터를 출력합니다 2. [ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 데이터를 포함하는 데이터를 출력합니다 3. [a-zA-Z] : 영문 데이터를 포함하는 데이터를 출력합니다 4. [0-9] : 숫자 데이터를 포함하는 데이터를 출력합니다 5. like 조건에서 '조건%' 을 지정 시 특정 문자 패턴으로 시작하는 데이터를 검색합니다 6. like 조건에서 '%조건' 을 지정 시 특정 문자 패턴으로 종료하는 데이터를 검색합니다 */ SELECT T_HOBBY FROM TES..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [group by , select 서브쿼리 사용해 특정 부서에 포함된 직급 연봉 출력 실시] 1. group by : 그룹 매핑을 수행합니다 2. having : 그룹 조건을 지정합니다 3. select 서브쿼리 : select 절에서 () 소괄호를 사용해 쿼리 안에서 또 다른 쿼리를 수행합니다 */ select t_dept as '부서', t_rank as '직급', (select t_rank_money from test_rank where t_rank_name = t_rank) as '연봉' -- [4] : 서브쿼리 사용해 연봉 데이터 출력 실시 from test_user where t_dept = '백제' ..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [요약 설명] 1. LEN : 문자열 길이를 확인합니다 2. REPLACE : 특정 문자열을 변경해줍니다 3. REPLACE (원본 데이터, 특정 문자, 변경할 문자) 로 문법을 사용합니다 4. REPLACE 를 사용하면 특정 문자열을 모두 변경합니다 5. 결과 : 원본 - 특정문자제거길이 = 특정문자개수 */ SELECT LEN('HELLO@안녕@TWOK') - LEN(REPLACE('HELLO@안녕@TWOK', '@', '')) AS '특정문자개수'; [결과 출력]

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /***************************************************************/ CREATE PROCEDURE PRO_SEL_DEPT -- [생성] --ALTER PROCEDURE PRO_SEL_DEPT -- [수정] ( @IN_DEPT NVARCHAR(100) -- [인풋 : 부서] ) /*************************************************************** 설명 - 사용자 디바이스 고유값 일괄 초기화 수행 --------------------------------------------------------------- 프로시저 생성 조..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [row_number()을 사용해서 소계 그룹별 순차적 순번 표시 실시] 1. row_number() - 순차적으로 순번 표시 (동일한 값도 순번 다름) 2. T_DEPT를 기준으로 소계별 순차적 순번을 표시합니다 */ SELECT ROW_NUMBER() OVER(ORDER BY T_DEPT DESC) AS rownum, T_NAME, T_DEPT FROM TEST_USER; [결과 출력]

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [방법 설명]

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* *[is null, is not null 을 사용해 널인 데이터와 널이 아닌 데이터 출력 실시] * 1. IS NULL - 컬럼 및 데이터가 널인 것을 출력합니다 * 2. IS NOI NULL - 컬럼 및 데이터가 널이 아닌 것을 출력합니다 */ -- [IS NULL 널 데이터 조회] SELECT DEVICE_UID FROM TB_ID_MASTER WHERE DEVICE_UID IS NULL; -- [IS NOT NULL 널 데이터가 아닌 것 조회] SELECT DEVICE_UID FROM TB_ID_MASTER WHERE DEVICE_UID IS NOT NULL; [결과 출력]

[개발 환경 설정] 개발 툴 : inteli j 개발 언어 : spring [소스 코드] // [인풋 데이터 없음 / 리턴 컬럼 한개 반환 : 메시지 형태 : 프로시저 내부에서 select 절 수행] { call PRO_DEL_MOCO() } // [인풋 데이터 있음 / 리턴 컬럼 여러개 반환 : 프로시저 내부에서 select 절 수행] { call PRO_DEL_MOCO ( #{data} ) }

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /***************************************************************/ --CREATE PROCEDURE PRO_DEL_UUID -- [생성] ALTER PROCEDURE PRO_DEL_UUID -- [수정] /*************************************************************** 설명 - 사용자 디바이스 고유값 일괄 초기화 수행 --------------------------------------------------------------- 프로시저 생성 조회 : sp_helptext 'dbo.PRO_DEL_UUID' -----..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] DECLARE -- [초기 변수 선언 부분] @V_NAME AS NVARCHAR(100), @V_AGE AS NVARCHAR(100); -- [초기 변수 값 할당 부분 - BEGIN 구문에서 재할당 가능] SET @V_NAME = ''; SET @V_AGE = 0; BEGIN -- [SELECT 쿼리문 수행 실시] SELECT @V_NAME = T_NAME , @V_AGE = T_AGE FROM TEST_USER WHERE T_NAME = '홍길동'; -- [PRINT 결과 출력 실시] PRINT '이름 : ' + CONVERT(VARCHAR, @V_NAME); PRINT '나이 : ' + CONVERT(VARCHAR..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /***************************************************************/ --CREATE PROCEDURE USER_PROC -- [생성] ALTER PROCEDURE USER_PROC -- [수정] ( @IN_NAME NVARCHAR(100), -- [인풋 : 이름] @IN_AGE NVARCHAR(100), -- [인풋 : 나이] @OUT_MSG NVARCHAR(100) OUTPUT -- [출력 : 파라미터] ) /*************************************************************** 설명 - 이름과 나이를 인풋값으로 받아서 해당..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [참고 사이트] https://logical-code.tistory.com/117 [MS-SQL] 프로시저에서 여러 행 데이터를 반환시킬 수 있을까? MSSQL을 사용하는 프로젝트에서 프로시저의 OUTPUT 매개변수로 여러 데이터, 여러 Row를 반환시킬 수 있는지 확인해야하는 일이 생겨 포스팅한다. 내가 알기로는 프로시저의 OUTPUT 매개변수로 테이 logical-code.tistory.com

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /***************************************************************/ --CREATE PROCEDURE USER_PROC -- [생성] ALTER PROCEDURE USER_PROC -- [수정] ( @IN_NAME NVARCHAR(100), -- [인풋 : 이름] @IN_AGE NVARCHAR(100), -- [인풋 : 나이] @OUT_MSG NVARCHAR(100) OUTPUT -- [출력 : 파라미터] ) /*************************************************************** 설명 - 이름과 나이를 인풋값으로 받아서 해당..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /***************************************************************/ --CREATE PROCEDURE USER_PROC -- [생성] ALTER PROCEDURE USER_PROC -- [수정] ( @IN_NAME NVARCHAR(100), -- [인풋 : 이름] @IN_AGE NVARCHAR(100), -- [인풋 : 나이] @OUT_RETURN INT OUTPUT -- [출력 : 파라미터] ) /*************************************************************** 설명 - 이름과 나이를 인풋값으로 받아서 해당 조건에 만족..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [방법 설명 : [1] 쿼리문 조회] 프로시저 생성 조회 : sp_helptext 'dbo.프로시저명칭' 프로시저 생성 조회 : sp_helptext 'dbo.USER_PROC' [방법 설명 : [2] GUI 툴 사용]

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] -- [함수 생성 수행 실시 : 인풋 파라미터 값으로 ONE, TOW 받음] CREATE FUNCTION USER_FUNC(@ONE INT, @TWO INT) /*************************************************************** 설명 - 두 정수값을 입력 받아 합계를 반환하는 함수 --------------------------------------------------------------- 함수 생성 조회 - SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION'; ---------------..

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [RAND , FLOOR 사용해 랜덤 정수값 출력 실시] 1. RAND : 임의의 데이터를 반환합니다 2. FLOOR : 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다 */ SELECT FLOOR(RAND()*(6)+1) AS '1부터 6까지 랜덤 정수값', FLOOR(RAND()*(100)+1) AS '1부터 100까지 랜덤 정수값'; [결과 출력] [요약 설명] /* [RAND , FLOOR 사용해 랜덤 정수값 출력 실시] 1. RAND : 임의의 데이터를 반환합니다 2. FLOOR : 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다 */

[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [변수에 값 대입 및 if else 문을 사용해 조건문 분기 처리 실시] 1. declare begin end - PL/SQL 기본으로 쿼리, 문법을 실행할 수 있습니다 2. declare [선언부] - 변수, 상수를 선언할 수 있습니다 3. begin [실행부] - 제어, 반복문, 함수 등 다양한 로직 기술을 실행합니다 4. end [종료부] - 실행된 로직의 종료를 선언합니다 5. set [할당] - 선언한 변수에 값을 할당할 수 있습니다 6. print [출력] - 결과물을 출력할 때 사용합니다 7. if , else if , else - 조건문을 분기에 따라서 처리할 수 있습니다 */ DECLARE -- ..