2014-04-17 4 views
0

여러 개의 열로 구문 분석 된 주소 정보가 있고보기를 사용하여 선행 또는 후행 공백없이 열을 하나로 연결하려고합니다. LTRIMRTRIM을 시도했지만 선두/후행 공백을 제거하는 방법을 알아낼 수 없습니다.SQL Server에서 여러 열을 연결하십시오.

SQL Server 2008 R2를 사용하고 있습니다. 아래는 데이터 저장 방법의 샘플입니다. Address 열은 내가 찾고있는/기대하고있는 결과물입니다.

미리 감사드립니다.

HouseNo|PreDir|StName|SufType|SufDir|UnitType|UnitNo|City |State|Zip |Address| 
123 |  |Main |St  |  |  |  |Anytown |CA |55555|123 Main St Anytown, CA 55555 
245 |  |3rd |Ave |NE |  |  |Anytown |CA |55555|245 3rd Ave NE Anytown, CA 55555 
4675 |W  |Elm |Dr  |  |  |  |Anytown |CA |55555|4675 W Elm Dr Anytown, CA 55555 
789 |E  |1st |St  |  |Apt  |5  |Anytown |CA |55555|789 E 1st St Apt 5 Anytown, CA 55555 
432 |  |Locust|Blvd |SE |  |  |Anytown |CA |55555|432 Locust Blvd SE Anytown, CA 55555 
+0

현재 사용중인 SQL과 관련 테이블에 대한 작성 스크립트를 표시하십시오. 이들이 varchar 열이면 패딩이 없어야합니다. – dodexahedron

+0

'+'연산자에 익숙합니다. 제 관심은 인 필드를 얻는 방법 또는 비어있는 경우 빈 문자열로 표시하지 않는 것입니다. – user3543337

+0

확인. 어떻게해야하는지에 대한 예제로 수정되었습니다. 이 작업을 수행하려면 SET CONCAT_NULL_YIELDS_NULL ON을 사용해야하므로 ''+ ColName이 null이됩니다. 일반적으로 기본적으로 해제되어 있습니다. – dodexahedron

답변

1

원하는 것은 문자열 연결과 COALESCE 연산자의 조합입니다. COALESCE는 쉼표로 구분 된 표현식 목록의 첫 번째 null이 아닌 값을 반환합니다.

예 : 위에서 ON으로 CONCAT_NULL_YIELDS_NULL 필요함

Address 123 Main 245 3rd 4675 W Elm 789 E 1st 432 Locust

참고

SET CONCAT_NULL_YIELDS_NULL ON; 
SELECT HouseNo + COALESCE(' ' + PreDir, '') + COALESCE(' ' + StName, '') AS Address FROM YourTable 

있음을 초래할 것이다. 연결하기 위해 켜져 있는지 확실하지 않으면 SELECT 앞에 SET CONCAT_NULL_YIELDS_NULL ON으로 전화하십시오. CONCAT_NULL_YIELDS_NULL은 데이터베이스에 대해 다르게 설정된 경우가 아니면 (일반적이지 않음) 일반적으로 기본적으로 해제되어 있습니다. 다음 빈 문자열 때문에 아무것도 다음 값, ''를 사용하여 COALESCE가 발생합니다 PreDir 컬럼에 NULL이 기록을 위해 NULL 발생합니다 ' ' + PreDir를 추가 CONCAT_NULL_YIELDS_NULL ON으로

.

관련 문제