'MS SQL Server'에 해당되는 글 2건

  1. 2010.12.23 | [MSSQL] SQL Server 2008에서 MERGE문 사용
  2. 2010.12.23 | [MSSQL] SQL Server의 RPAD구현

[MSSQL] SQL Server 2008에서 MERGE문 사용

MS SQL | 2010. 12. 23. 15:49
Posted by Haronoid
* MS SQL Server 2008부터 서포트하게된 MERGE문의 사용방법
MERGE TBL1
USING TBL2
ON (TBL1.CLM1 = TBL2.CLM1)
WHEN MATCHED THEN
UPDATE SET TBL1.CLM2 = TBL2.CLM2
WHEN NOT MATCHED THEN
INSERT (TBL1.CLM1, TBL1.CLM2) Values (TBL2.CLM1, TBL2.CLM2);
c
  • TBL1의CLM1에TBL2의CLM1가 있을 경우 CLM2을 갱신
  • TBL1의CLM1에TBL2의CLM1가 없을 경우 TBL1에 새레코드를 등록

**비교대상이 테이블이 아닌경우의 사용예
일반적으로는 이 예의 경우가 자주 쓰기게 될 것같다.
MERGE TBL1
USING (SELECT 'A' CLM1, 'B' CLM2) TBL2
ON (TBL1.CLM1 = TBL2.CLM1)
WHEN MATCHED THEN
UPDATE SET TBL1.CLM2 = TBL2.CLM2
WHEN NOT MATCHED THEN
INSERT (TBL1.CLM1, TBL1.CLM2) Values (TBL2.CLM1, TBL2.CLM2);
  • TBL1의CLM1에'A'가 있을 경우 갱신
  • 없을 경우엔 새레코드로 등록한다.
 

[MSSQL] SQL Server의 RPAD구현

MS SQL | 2010. 12. 23. 15:32
Posted by Haronoid
* MS SQL Server에는 RPAD함수가 기본제공 되지 안기때문에 함수로서 정의해 줄 필요가 있다.
CREATE FUNCTION F_RPAD
(
	@TEXT VARCHAR(200),
	@MAX_COUNT INT,
	@PAD_CHAR CHAR(1)
)
RETURNS VARCHAR(200)
AS
BEGIN
	DECLARE @RTNVAL VARCHAR(200)
	SELECT @RTNVAL = RIGHT(REPLICATE(@PAD_CHAR, @MAX_COUNT) + @TEXT , @MAX_COUNT)
	RETURN @RTNVAL
END
  • FUNCTION의RETURNS형을 변수로 지정해주지 않고 리턴해버릴경우 0를 반환하게된다.
* 실행
SELECT dbo.F_RPAD('AA', 6, '0')

結果
0000AA
 
블로그 이미지

Haronoid

기본적으로 프로그래밍 관련 메모를 중점으로 합니다. 자세한 설명이 결여되어 있을 가능성이 있습니다.

카테고리

분류 전체보기 (29)
프로그래밍 기본 (1)
VB&VBA (1)
JAVA (0)
ORACLE (10)
WidnowsCommandLine (2)
Excel (1)
Windows (1)
.NET (6)
MS SQL (6)