2011-05-06 4 views
2

죄송합니다. 기존 질문 중 하나와 중복되는 경우 미안합니다 (간단하지만 이해할 수는 없지만 새로운 것입니다).행 중 하나가 null 일 때 두 개의 nvarchar 행을 하나의 행으로 변환하는 방법

일부 데이터를 다른 테이블 (다른 구조)으로 마이그레이션해야합니다.

표 A에는 이름과 성이 있습니다. 표 B 내가

SELECT Firstname + ' ' + LastName As Name FROM TableA 

을하고 싶지 그러나 문제는 테이블 B에, 일부 행은 FIRSTNAME 또는 LASTNAME 있지만 둘 다 (게으른 사용자)에 대한 null 값을 가지고있다 이름 열을

있습니다.

테이블 B로 가져 오면 이름 열이 새 디자인에서 null이 아니기 때문에 쿼리가 실패하고 위의 명령문을 테스트 할 때 firstname 또는 lastname이 null 인 경우 연결 값은 null입니다.

필자가 해본 결과, 이것은 예상되는 행동이지만이 문제를 해결하기 위해 무엇을 할 수 있습니까?

다른 하나가 null 인 경우 성 또는 성을 저장하려고합니다. 이것은 하나의 colaesce 수행 할 수 있습니다

답변

4
SELECT RTRIM(LTRIM(ISNULL(Firstname ,'') + ' ' + ISNULL(LastName,''))) AS Name 
FROM TableA 
+1

선두 또는 후미 공백을 처리하는 유일한 대답은 ... – gbn

0

사용 유착 또는 ISNULL

select COALESCE(FirstNAme, '') + ' ' + COALESCE(LastName, '') as name from TableA 
0
SELECT isnull (Firstname, '') + ' ' isnull (LastName, '') as Name 
FROM TableA 
1

(최초의 비 NULL을 반환) & 공백에 대한 혼란을 필요가 없습니다.

select 
    coalesce(firstname + ' ' + lastname, firstname, lastname) 
from TableA 
관련 문제