SQL Server COALESCE()함수 의 2 가지 유용 한 방법
3387 단어 SQL
그리고 첫 번 째 비 어 있 는 값 을 되 돌려 줍 니 다.이 기법 은 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()를 함수 에 넣 어 사용 할 수도 있 고,단독 계산 열 에 넣 어 성능 을 최적화 시 켜 결 과 를 얻 을 수도 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.