본문 바로가기

카테고리 없음

sql db integration

반응형

1. 중복제거-최신 날짜를 가진 문서만 선택하기

USE [테이블명]

GO

SELECT [seq_id]

      ,[InnertDateTime]

      ,[CtrtCode]    

      ,[RegtDate]    

      ,[UpdateDate]

  FROM [dbo].[ProjectOutlineUpdate] A

  where UpdateDate=(Select MAX(UpdateDate) from [dbo].[ProjectOutlineUpdate] B where B.CtrtCode = A.CtrtCode

  group by CtrtCode)

GO

2. /* 타임스탬프를 찍을수 있도록 필드를 수정하는 쿼리, 반드시 테이블 생성후 실행 */
ALTER TABLE [dbo].[PUpdate] ADD  CONSTRAINT [DF_PUpdate_LOADINGDATETIME]  DEFAULT (getdate()) FOR [InnertDateTime]
GO 

3. merge

MERGE INTO 타겟테이블  --INSERT/UPDATE 할 테이블
 USING (SELECT 1 AS DUM) X 
      ON (필드1= 비교할 대상) --조건
    WHEN MATCHED THEN --위 조건에 맞는 데이터가 있으면 UPDATE
            UPDATE SET
            타겟_필드1= 'AAA'
            ,타겟_필드2= 'BBB'
    WHEN NOT MATCHED THEN --위 조건에 맞는 데이터가 없으면 INSERT
            INSERT (타겟_필드1, 타겟_필드2..)
            VALUES(
                'AAA'
                , 'BBB'

            ); -- MERGE문에서는 ; 를 꼭 넣어야 함



MERGE INTO test_member  --INSERT/UPDATE 할 테이블
 USING (SELECT 1 AS DUM) X 
      ON (id= 'hhh') --조건
    WHEN MATCHED THEN --위 조건에 맞는 데이터가 있으면 UPDATE
            UPDATE SET
            member_name = '태연'
    WHEN NOT MATCHED THEN --위 조건에 맞는 데이터가 없으면 INSERT
            INSERT (id, member_name)
            VALUES(
                'jjj'
                , '송준기'

            ); -- MERGE문에서는 ; 를 꼭 넣어야 함




반응형