SQL Server COALESCE()함수 의 2 가지 유용 한 방법

3387 단어 SQL
다음 글 은 SQL Server 를 정확하게 사용 하 는 것 을 설명 합 니 다. COALESCE()함수 의 2 가지 좋 은 방법,SQL Server COALESCE()함 수 는 실제 응용 프로그램 에서 일련의 값 을 받 아들 일 수 있 습 니 다.목록 에 있 는 모든 항목 이 비어 있 으 면(null)값 만 사용 합 니 다.
그리고 첫 번 째 비 어 있 는 값 을 되 돌려 줍 니 다.이 기법 은 SQL Server 의 COALESCE()함 수 를 창의 적 으로 사용 하 는 두 가지 방법 을 묘사 했다.
COALESCE()함 수 는 일련의 값 을 받 아들 일 수 있 습 니 다.목록 의 모든 항목 이 비어 있 으 면(null)한 값 만 사용 합 니 다.그리고 첫 번 째 비 어 있 는 값 을 되 돌려 줍 니 다.이 기법 은 SQL Server 의 COALESCE()함 수 를 창의 적 으로 사용 하 는 두 가지 방법 을 묘사 했다.
간단 한 예 가 있 습 니 다.세 필드 의 First Name,MiddleName,LastName 이 있 는 Persons 데이터 시트 가 있 습 니 다.표 에 다음 값 이 포함 되 어 있 습 니 다:
John A. MacDonald   
Franklin D. Roosevelt   
Madonna   
Cher   
Mary Weilage  
전체 이름 을 문자열 로 표시 하려 면 SQL Server COALESCE()함 수 를 사용 하여 이 기능 을 완성 하 는 방법 을 보 여 줍 니 다.
SELECT FirstName + '' '' +COALESCE(MiddleName,'''')+ '' '' +COALESCE(LastName,'''')  
모든 검색 어 를 이렇게 쓰 고 싶 지 않다 면 목록 A 는 함수 로 변환 하 는 방법 을 보 여 줍 니 다.이렇게 하면 이 스 크 립 트 를 사용 해 야 할 때(각 열의 실제 값 이 무엇 이 든)이 함 수 를 직접 호출 하여 세 필드 의 인 자 를 전달 할 수 있 습 니 다.아래 의 예 에서 내 가 함수 에 전달 한 매개 변 수 는 인명 이지 만 같은 결 과 를 필드 이름 으로 대체 할 수 있다.
SELECT dbo.WholeName(''James'',NULL,''Bond'')   
UNION   
SELECT dbo.WholeName(''Cher'',NULL,NULL)   
UNION   
SELECT dbo.WholeName(''John'',''F.'',''Kennedy'')  
테스트 결 과 는 다음 과 같다.
James Bond   
Cher   
John F. Kennedy  
제 임 스 본드 라 는 이름 에 두 개의 빈 칸 이 있다 는 것 을 알 게 될 것 이다.@result 줄 을 수정 하면 이 문 제 를 고 칠 수 있 습 니 다.다음 과 같 습 니 다.
SELECT @Result = LTRIM(@first + '' '' + COALESCE(@middle,'''') + '' '') + COALESCE(@last,'''')  
다음은 SQL Server COALESCE()함수 의 또 다른 응용 프로그램 입 니 다.이 예 에서 우 리 는 직원 들 에 게 지불 하 는 임금 명세 서 를 표시 할 것 이다.문 제 는 서로 다른 직원 의 임금 기준 이 다르다 는 것 이다(예 를 들 어 일부 직원 들 은 시간 에 따라 지불 하고 업 무량 에 따라 일주일 에 한 번 씩 월급 을 지급 하거나 책임 에 따라 지불한다).목록 B 에는 견본 표를 만 드 는 코드 가 있 습 니 다.다음은 예제 기록 입 니 다.각각 유형 입 니 다.
1 18.00 40 NULL NULL NULL NULL   
2 NULL NULL 4.00 400 NULL NULL   
3 NULL NULL NULL NULL 800.00 NULL   
4 NULL NULL NULL NULL 500.00 600   
아래 코드 로 같은 열 에 직원 들 에 게 지불 하 는 총액 을 표시 합 니 다(그들의 지불 기준 에 관 계 없 이).
SELECT   
EmployeeID,   
COALESCE(HourlyWage * HoursPerWeek,0)+   
COALESCE(AmountPERPiece * PiecesThisWeek,0)+   
COALESCE(WeeklySalary + CommissionThisWeek,0)AS Payment   
FROM [Coalesce_Demo].[PayDay]  
결 과 는 다음 과 같다.
EmployeeID Payment   
1 720.00   
2 1600.00   
3 800.00   
4 1100.00  
응용 프로그램 에서 이 계산 방법 을 여러 곳 에서 사용 해 야 할 수도 있 습 니 다.임 무 를 완성 할 수 있다 는 뜻 이지 만 보기 에는 좋 지 않 습 니 다.이 작업 을 수행 하기 위해 서 는 별도의 구 와 열 을 사용 하 는 방법 을 보 여 줍 니 다.
ALTERTABLE Coalesce_Demo.PayDay   
ADD Payment AS   
COALESCE(HourlyWage * HoursPerWeek,0)+   
COALESCE(AmountPerPiece * PiecesThisWeek,0)+   
COALESCE(WeeklySalary + CommissionThisWeek,0)  
이렇게 하면 SELECT*를 사용 하면 미리 계 산 된 결 과 를 나 타 낼 수 있다.
작은 매듭
본 고 는 COALESCE()함 수 를 사용 하 는 특수 한 장소 와 특수 한 방식 을 소개 했다.제 경험 상 SQL Server COALESCE()함 수 는 조회 나 보기,저장 과정 등 구체 적 인 내용 에 가장 많이 나타 납 니 다.
COALESCE()를 함수 에 넣 어 사용 할 수도 있 고,단독 계산 열 에 넣 어 성능 을 최적화 시 켜 결 과 를 얻 을 수도 있다.

좋은 웹페이지 즐겨찾기