-- 실행중인쿼리조회SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.total_elapsed_time FROM sys.dm_exec_requests req CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext--프로시저내용조회EXEC UP_SP_HELP_TABLE--테이블 정보 보기EXEC UP_SP_HELP_TABLE T1-- 실행중인 쿼리 보기SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.total_elapsed_time FROM sys.dm_exec_requests..
📌 PARTITION BY 1️⃣ PARTITION BY란?PARTITION BY는 하나의 테이블을 특정 기준으로 그룹(파티션)으로 나누는 기능입니다.엑셀로 치면, 필터(Filter)를 적용하여 그룹별로 데이터를 정렬하는 것과 비슷합니다.2️⃣ PARTITION BY 없이 ROW_NUMBER() 사용하면?사원번호 부서 입사일1001영업2023-03-011002영업2022-08-151003IT2021-06-101004IT2023-05-201005IT2019-12-01만약 ROW_NUMBER()를 사용하여 입사일이 빠른 순서대로 일련번호를 부여하면, 아래처럼 전체 데이터에 대해 번호가 매겨집니다.SELECT 사원번호, 부서, 입사일, ROW_NUMBER() OVER(ORDER BY 입사일 A..
문자열을 수정하는 데 사용일반적으로 특정 위치부터 문자열을 대체하거나 제거할 때 사용 가정: "Hello, World!" 라는 문자열을 사용합니다.DECLARE @text NVARCHAR(100) = 'Hello, World!' 1. 문자열 대체-- 문자열 "World"를 "Universe"로 대체SET @text = STUFF(@text, 7, 5, 'Universe')SELECT @text결과: "Hello, Universe!"STUFF(@text, 7, 5, 'Universe')는 문자열 @text의 7번째 위치부터 시작해서 5개의 문자를 'Universe'로 대체합니다. 2. 문자열 제거-- 문자열 "Universe!"를 제거SET @text = STUFF(@text, 7, 8, '')SE..
📌 WITH 절과 CTE(Common Table Expression) SQL에서 WITH 절은 공통 테이블 식(CTE, Common Table Expression)을 만들 때 사용CTE는 일시적으로 데이터를 저장하는 가상의 테이블로, 복잡한 쿼리를 쉽게 작성하고 가독성을 높이는 데 유용✅ 1. CTE 기본 개념CTE는 서브쿼리(하위 쿼리)와 비슷하지만, 더 명확하고 재사용이 가능💡 CTE의 특징실행 시 일시적으로 유지되는 가상의 테이블여러 번 사용할 수 있지만 쿼리 실행 후 사라짐재귀 쿼리(Recursive Query)도 가능✅ 2. CTE 기본 문법WITH CTE_Name AS ( -- CTE 정의 (조회할 데이터) SELECT Column1, Column2 FROM SomeTabl..
🍩 윈도우함수 OLAP 함수라고도 한다. OLAP란, OnLine Analytical Processing의 약자로, 데이터베이스를 사용한 실시간(온라인) 데이터 분석처리 윈도우 함수는 이 OLAP 용도로 사용하기 위해 표준 SQL에 추가된 기능 결과 집합의 여러 행에 대한 계산을 수행하는 데 사용 일반적으로 정렬된 데이터에 대해 작동하며, 데이터베이스 질의의 윈도우(또는 창)에 대해 계산을 수행 효율적인 데이터 분석 및 집계 작업을 수행 ROW_NUMBER(): 결과 집합의 각 행에 순서 번호를 할당합니다. 주로 정렬된 결과에서 특정 순서의 행을 선택할 때 사용됩니다. SELECT ROW_NUMBER() OVER(ORDER BY Salary DESC) AS RowNum, EmployeeName, Sala..
CROSS APPLY → INNER JOIN OUTER APPLY → OUTTER JOIN 그러나, CROSS APPLY와 INNER JOIN, 그리고 OUTER APPLY와 OUTER JOIN은 같은 결과를 반환하지 않습니다. CROSS APPLY vs. INNER JOIN: CROSS APPLY: 왼쪽 테이블의 각 행에 대해 오른쪽 테이블의 서브쿼리를 실행하고, 조건에 맞는 결과를 반환합니다. 이 때, 오른쪽 서브쿼리는 왼쪽 테이블의 각 행에 대해 실행되므로, 왼쪽 테이블의 모든 행에 대한 조인이 발생할 수 있습니다. 따라서, 두 테이블 간의 관계가 매우 밀접하게 형성됩니다. INNER JOIN: 두 테이블 간의 조인 조건에 맞는 행만 반환합니다. INNER JOIN은 두 테이블 간의 관계를 확인하고..

--테이블 데이터 값🍩INSERTINSERT INTO TBL_SH (EMP_NO, AGE, IUSER, IDATE) VALUES ('20', 20, 'TEST', GETDATE()); 🍩UPDATEUPDATE TBL_SH SET IUSER = 'TEST5' WHERE IUSER = 'TEST' 🍩DELETEDELETE FROM TBL_SH WHERE EMP_NO = ''; 🍩ALTER 열 추가ALTER TABLE TBL_SH ADD CO INT DEFAULT 0; 🍩GROUP BY/*AGE를 기준으로 SEQNO의 값을 집계한다*/SELECT AGE, AVG(SEQNO) AS AVERAGE_SCORE, MAX(SEQNO) AS MAX_SCORE, MIN(SEQNO) AS MIN_SCORE FROM..