목록MsSqlDB (107)
투케이2K
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [STRING_AGG 사용해 출력되는 컬럼 데이터를 가로(행)으로 합쳐서 출력 실시] 1. STRING_AGG(컬럼, 구분자) WITHIN GROUP(ORDER BY 정렬기준) 문법으로 사용합니다 2. GROUP BY를 추가적으로 사용해서 특정 그룹별 데이터를 모두 출력합니다 */ SELECT T_DEPT AS 부서, STRING_AGG(T_NAME, ',') WITHIN GROUP(ORDER BY T_NAME) AS 이름 FROM TEST_USER WHERE T_DEPT = '고구려' GROUP BY T_DEPT; [결과 출력] [원본 데이터] [STRING_AGG 데이터]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [rollup 롤업 사용해 그룹 별 소계 및 합계 구하기 실시] 1. rollup - 그룹 함수이며, 소계 및 합계를 아래쪽에 표시합니다 2. 본 예제는 부서별 나이를 소계 그룹으로 합계를 구합니다 3. cast 는 데이터 형변환을 수행하는 함수입니다 */ /* [rollup 소계 및 합계를 아래쪽에 표시] */ select t_age, t_dept, sum(cast(t_age AS INT)) as 나이합계 from test_user where t_dept = '발해' group by rollup(t_age, t_dept); [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [DATEDIFF 를 사용해 연도 (year) , 월 (month) , 일자 (day) 차이 구하기 실시] 1. DATEDIFF 함수를 사용해서 시작일자 ~ 종료일자 까지 년, 월, 일 날짜 차이를 계산할 수 있습니다 2. DATEDIFF(차이 포맷, 시작일자, 종료일자) 방법으로 문법을 사용합니다 */ SELECT '20220520' AS 현재날짜, DATEDIFF(yy, '2021-05-10', GetDate()) AS 연도차이, DATEDIFF(MM, '2021-05-10', GetDate()) AS 월수차이, DATEDIFF(DD, '2021-05-10', GetDate()) AS 일자차이; [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [요약 설명] 1. STUFF 함수는 지정된 자릿수 만큼 데이터를 삭제하고 새로운 데이터를 끼워 넣습니다 2. STUFF(원본데이터, 시작, 자릿수, 끼워넣을 데이터) 방법으로 문법을 사용합니다 3. 1번 H 부터 5개 글자 HELLO 삭제 > 투케이 끼워 넣습니다 */ SELECT STUFF('HELLOTWOK', 1, 5, '투케이') AS 데이터; [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [요약 설명] 1. CHOOSE 함수는 SQL SERVER 2012 버전 이상 사용할 수 있는 함수입니다 2. CHOOSE 함수는 지정된 위치값의 데이터 값을 반환해줍니다 3. CHOOSE(위치값, 데이터, 데이터 ...) 방법으로 문법을 사용합니다 */ SELECT CHOOSE(3, 'HI', 'HELLO', 'TWOK', 'WORLD') AS "3번째"; [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [요약 설명] 1. @@VERSION : 현재 설치된 SQL SERVER 버전을 확인해줍니다 2. SYSTEM_USER : 현재 로그인된 사용자를 확인해줍니다 */ SELECT @@VERSION AS 버전; SELECT SYSTEM_USER AS 로그인사용자; [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [요약 설명] 1. STR 함수는 숫자를 문자로 캐스팅 변환해줍니다 2. STR(숫자) 방법으로 문법을 사용합니다 */ SELECT STR(489) AS 결과; [결과 출력]
[개발 환경 설정]개발 툴 : SSMS개발 언어 : MSSQL [소스 코드]/*[요약 설명]1. ASCII 함수는 특정 문자 아스키 코드 값을 출력해줍니다2. CHAR 함수는 특정 아스키 코드 값을 문자로 출력해줍니다*/SELECT ASCII('A') AS 아스키값, CHAR(65) AS 문자값;[결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /* [요약 설명] 1. REPLICATE 함수는 지정한 횟수만큼 문자열을 반복해서 출력합니다 2. REPLICATE(컬럼 및 데이터, 반복 횟수) 방법으로 문법을 사용합니다 */ SELECT REPLICATE('TWOK', 3); [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] DECLARE /* [if else , case when then 조건문을 사용해 결과 분기 출력 실시] 1. if [조건] else [예외 결과] 방법으로 문법을 사용합니다 2. case when [조건] then [만족결과] else [예외 결과] 방법으로 문법을 사용합니다 3. if 문과 case 문을 사용해서 결과값을 분기처리해서 출력할 수 있습니다 */ -- [초기 변수 선언 부분] @V_DATA AS INT, @V_PRINT AS VARCHAR(100); -- [초기 변수 값 할당 부분 - BEGIN 구문에서 재할당 가능] SET @V_DATA = 2; SET @V_PRINT = ''; BEGIN -- [I..
[개발 환경 설정] 개발 툴 : 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; [결과 출력]
[개발 환경 설정] 개발 툴 : SSMS 개발 언어 : MSSQL [소스 코드] /***************************************************************/ --CREATE PROCEDURE PRO_DEL_UUID -- [생성] ALTER PROCEDURE PRO_DEL_UUID -- [수정] /*************************************************************** 설명 - 사용자 디바이스 고유값 일괄 초기화 수행 --------------------------------------------------------------- 프로시저 생성 조회 : sp_helptext 'dbo.PRO_DEL_UUID' -----..