sql 4

[MSSQL] 이전행과 다음행 데이터를 가져오는 LAG,LEAD 함수

SQL Server 2012 에서 행을 비교할때 사용할수있는 함수입니다. 1. 원본데이터 SELECT ProductID, ModifiedDate, StandardCost FROM Production.ProductCostHistory WHERE ProductID IN (711, 712, 713) ORDER BY ProductID, ModifiedDate 2. LAG/LEAD 함수 SELECT ProductID, StandardCost, ModifiedDate, LAG(StandardCost, 1, NULL) OVER (PARTITION BY ProductID ORDER BY ModifiedDate) AS PrevStandardCost, LEAD(StandardCost, 1, NULL) OVER (PARTI..

DataBase/MSSQL 2019.07.10

[MSSQL]다른 테이블과 JOIN 해서 UPDATE 하기

DB데이터를 UPDATE시 다른테이블과 JOIN하여 업데이트를 할때 사용하는쿼리이다. UPDATE [변경될테이블] SET [컬럼1] = A2.[컬럼1] , [컬럼2] = A2.[컬럼2] FROM [조인테이블] A2 WHERE [변경될테이블].[조건컬럼] = A2.[조건컬럼] UPDATE MEMBER SET REG_USER_ID = ID , REG_DATE = A2.REG_DATE FROM MEMBER_WALLET A2 WHERE MEMBER.CODE = A2.CODE 테이블이 한개가아니라도 일반적인조인문처럼 사용하여 여러개의 테이블 조인이 가능하다. UPDATE [변경될테이블] SET [컬럼1] = A2.[컬럼1] , [컬럼2] = A2.[컬럼2] FROM [조인테이블1] A2 JOIN [조인테이블2] ..

DataBase/MSSQL 2018.08.01

[MSSQL] MERGE문

MERGE문 조건일치시 UPDATE 불일치시 INSERT 를 처리하는 SQL문법 MERGE 변경될테이블명 AS A USING 기준테이블명 AS B ON A.컬럼명 = B.컬럼명 WHEN MATCHED THEN 일치할때쿼리문 WHEN NOT MATCHED THEN 불일치할때쿼리문 MERGE [변경될테이블명] AS A1 USING (SELECT '[조건]' AS [컬럼명] ) AS A2 ON A1.[컬럼명] = A2.[컬럼명] WHEN MATCHED THEN UPDATE SET A1.[컬럼] ='[값]' , A1.[컬럼] ='[값]' WHEN NOT MATCHED THEN INSERT (A1.[컬럼],A1.[컬럼],A1.[컬럼]) VALUES ('[값]','[값]','[값]'); ※MERGE 문은 끝에 꼭 ..

DataBase/MSSQL 2018.07.26