2013-12-09 2 views
0

SQL Server 2008 R2를 사용하고 있으며 RTRIM 함수를 사용하여 연결하려는 두 개의 nvarchar 필드가 있습니다. 그러나, 내가 할 때, 내가 얻을 모든 NULL 값입니다. 사전에RTRIM (something) + 'RTRIM (something)이 NULL이됩니다.

RTRIM(gis.dbo.tbl.Name1) + ' ' + RTRIM(gis.dbo.tbl.Name2) 

감사 :

다음은 내가 사용 예제 함수입니다!

+1

SQL을 사용하여 마지막으로 작업 한 이후 오랜 시간 동안 답변을 게시하지 않았습니다. CONCAT 함수는'+'연산자의 intead입니다. – Spidey

+0

RTRIM 함수와 + 연산자가 사용되는 뷰에 다른 필드가 있으며 내가 기대하는 것을 보여줍니다. – mpboyle

+1

실행 파일 repro ('RTRIM ('x') 선택 ... ')을 제공 할 수 있습니다. 당신은해야합니다. 입력 중 하나가 NULL이기 때문에 문제를 직접 찾을 수있었습니다. – usr

답변

1

필드에 값이 있는지 확인 했습니까? 둘 중 하나라도 null이면 코드가 작동하지 않습니다. null 값을 잡으려고이 대신 시도해 볼 수 있습니다.

RTRIM(ISNULL(gis.dbo.tbl.Name1, '')) + ' ' + RTRIM(ISNULL(gis.dbo.tbl.Name2, '')) 
+0

Name1은 거의 항상 채워지며 Name2는 드문 드문 채워집니다. 따라서 Name1과 Name2가 항상 채워지지 않는 한이 작업이 수행되지 않습니다. – mpboyle

+0

두 가지 모두 채워지지 않았기 때문에 코드가 작동하지 않는다는 것을 의미했습니다. 이는 null이되는 이유입니다. 내 대답의 코드는 상관없이 작동해야합니다. 내가 명확하게 대답을 업데이 트되었습니다. – mayabelle

+0

고마워요! 코드가 작동합니다. 나는 RTRIM 함수 때문에 내 것이 작동하지 않거나 + 연산자 때문에 ... NULL인지 궁금하다. – mpboyle

관련 문제