2012-01-26 3 views
1

저는 SQL Server에 익숙하지 않으므로 도와 드리겠습니다.왼쪽 결합 후 SQL Server MERGE 열?

기본적으로 두 가지 정보 테이블이 있습니다. 같은 첫 번째 외모 :

  • [ID, Name]
  • 표 2 [FKID, ID, Name]

내가 좋아하는 성명 싶지 :이 결과

SELECT table1.Name, table2.Name 
FROM table1 
LEFT JOIN table2 ON table2.FKID = table1.ID 

을 예 :

['Name 1a', 'Name 2a'] 
['Name 1b', NULL] 
['Name 1c', NULL] 

하지만 내가 원하는 것은 단지 중 하나가 null이 아닌 경우 Name 1x 또는 Name 2x 인 (왼쪽 키와 일치하는 항목이 조인 없었다) 것으로, 하나의 열을 선택하는 것입니다.

내 프로그래밍 언어를 사용하여 일반적인 응답을 해결할 수 있다고 생각하지만, GridViews와이 말도 안되는 것들을 사용하는 Visual Web Developer에서는 매우 어렵다는 것이 입증되었으므로 데이터베이스 솔루션이 무엇인지 매우 유용 할 것입니다.

고맙습니다.

답변

6
SELECT coalesce(table1.Name, table2.Name) as YourName 
FROM table1 
LEFT JOIN table2 ON 
table2.FKID = table1.ID 

COALESCE()은 첫 번째 NOT NULL 값을 반환합니다. 이게 니가 찾고있는거야?

+2

을 당신은 아마 '유착'을 작성하는 의미 (이하 6 개 문자 : – PinnyM

+0

@PinnyM 덕분에 해결되지 편집 할 수 있습니다! 결정된!! 그것은 항상 쓰는 이상한 기능입니다. :) –

+0

흠, 나는 이걸 보았습니다. 그렇지만 table1의 값이 처음 null이 아닐 때이 문제를 어떻게 적용 할 수 있을지 생각했습니다. 아마도 내가 COALESCE에서 그들을 바꿔 치기한다면 table2의 가치를 먼저 얻게 될 것입니다. – deed02392

0

COALESCE()은 행을 병합합니다. 병합 할 경우 열이 같은 시도 :

SELECT CONCAT(ColA, ColB) AS ColAB