반응형

SQL서버에 요런 좋은 함수가 있는 지 왜 진즉 몰랐을까...


COALESCE ( expression [ ,...n ] ) 


인자 값 중에서 최초로 NULL이 아닌 값을 되돌려 주는 함수 이다.


이전에는 이럴 경우 CASE 와 ISNULL 을 여러개 중첩해서 쿼리가 길고 지저분해 졌는데


COALESCE 함수를 이용하니 깔끔하고 가독성이 높아져서 좋은 것 같다.


근데 발음하기도, 철자도 무지 어려운 듯 하다...

반응형
반응형

쿼리를 작성 하다보면 월별 마지막 일자를 구해야 될때가 있는데 쿼리 내에서 계산을 해도 되겠지만

테이블로 생성시켜 놓고 년월 으로 JOIN만 해서 가져오는 식으로 하면 간편하고 쿼리 가독성도

높아서 이와 같은 방식을 추천 합니다.

다음과 같이 row 수가 많은 아무 테이블(아래 예제는 거래처)을 이용해서 일괄 생성 할 수 있습니다.


CREATE TABLE tblLastDate
(YM nchar(6) PRIMARY KEY,
LastDate nchar(8)
)

INSERT INTO tblLastDate (YM, LastDate)
SELECT
    convert(nchar(6), dateadd(m, b.ord - 1, '20000101'), 112) as YM,
    convert(nchar(8), dateadd(d, -1, dateadd(m, b.ord, '20000101')), 112) as LastDate
FROM 
(
    SELECT
        top 1000
        (ROW_NUMBER() OVER (PARTITION BY 0 ORDER BY custseq)) ord
    FROM tblCust
) b

다음과 같이 년월별로 마지막 일자를 가진 테이블이 생성 됩니다.

SELECT * FROM tblLastDate


반응형
반응형

SQL서버에서 기존의 PK를 다른 컬럼 구성으로 변경 하려면 다음과 같이 한다.

-- 기존 PK명 확인

sp_help 테이블명

--기존 PK 삭제

ALTER TABLE 테이블명

DROP CONSTRAINT 기존_PK명

--새로운 PK 정의

ALTER TABLE 테이블명

ADD CONSTRAINT 새_PK명 PRIMARY KEY [NONCLUSTERED](컬럼1, 컬럼2, ...)

 

좀 더 자세한 내용을 원하시면 다음 포스팅을 참고 하세요.

[SQL서버] PK(Primary Key) 변경 하기(상세)

 

반응형
반응형

특정 문자열에서 최초로 시작되는 한글부분 이하 전체를 가져 오는 방법 입니다.





반응형

+ Recent posts