>source

firstName, lastName, MiddleName과 같은 일부 인구 통계를 반환하는 쿼리가 있으며 LEFt (firstName, 1)와 같은 각 열의 첫 글자를 필터링하기 위해 LEFT 함수를 각각 사용해야합니다. 각 열이 null이 아닐 때 제대로 작동합니다. 값. null 값일 때

select otherColumns, LEFT(sub.LastName, 1) + ',' + LEFT(sub.FirstName, 1) + ' ' + LEFT(sub.MiddleName, 1) as patientInitials from <table> <inner joins> <some where conditions>;

그러나 middleName과 같은 인구 통계 중 하나가 null이고 다른 firstName, lastName이 null이 아닌 경우, patientInitials는 NULL로 평가합니다. 그 이유는 확실하지 않습니다.

추가하여 내 문제를 해결했습니다.COALESCE

LEFT(sub.LastName, 1) + ',' + LEFT(sub.FirstName, 1) + ' ' + COALESCE((LEFT(sub.MiddleName, 1)),'') as patientInitials

그러나 LEFT 함수에서 notNull을 확인하는 다른 좋은 방법이 있습니까?

감사합니다!

  • 답변 # 1

    But is there any other good way to check for notNull on the LEFT function ??

    CONCAT 함수는 NULL을 무시합니다.

    SELECT CONCAT(LEFT(sub.LastName, 1), ',' , 
                  LEFT(sub.FirstName, 1),
                  ' ' + LEFT(sub.MiddleName, 1)) patientInitials
    FROM tab;
    
    

    ' ' + LEFT(sub.MiddleName, 1)) ''를 사용하면 중간 이름이 NULL .

관련 자료

  • 이전 python - 3D 배열을 txt 파일에서 한 줄에 여러 2D 배열로 저장하는 방법은 무엇입니까?
  • 다음 python - 두 배열을 비교하고 상호 요소 수를 얻는 방법은 무엇입니까?