2012-06-19 2 views
2

두 개의 열, ItemNumber 및 Name을 하나의 변수로 연결하는 SQL 문이 있습니다. 이 변수를 목록 상자의 DataTextField로 사용합니다. 모든 것이 훌륭하게 작동하는 것처럼 보였습니다. 나는 문제를 발견했다. 행의 일부는 Name 필드에 null 값을 가지고 있으며 변수를 반환하면 변수는 null이다.null 값을 반환하는 연결된 SQL 열입니다. 해결 방법이 있습니까?

그래서 null 값을 확인하고 그 대신에 항목 번호 만 넣을 수 있는지 묻는 중입니다.

은 여기 내 SQL 문을 알려 주시면 그것을 제공 할 수있을 것입니다 도움이 될 수있는 다른 코드가있는 경우

SELECT ProductID, Name, CustItemNum, CustItemNum + ' - ' + Name AS itemNumName 
FROM Item it inner join JITVendors jit on it.Catalog_code = jit.Catalog_code 
WHERE jit.VendorName = 'Vendor' 
ORDER BY Name 

입니다. 당신은

답변

6

당신은 빈 문자열이있는 null 이름을 대체 할 coalesce을 사용할 수 있습니다 감사합니다 : @ ashes999는 의견 제안으로

CustItemNum + coalesce(' - ' + Name,'') AS itemNumName 
+0

마찬가지로 동일한 구문과 의미로'ISNULL'를 사용할 수 있습니다. – ashes999

+0

10 분이 지나면 마킹됩니다. 응답 해 주셔서 감사합니다. –

3

, 당신은 ISNULL를 사용할 수 있습니다

SELECT ProductID, Name, CustItemNum, ISNULL(CustItemNum,'') + ' - ' + ISNULL(Name,'') AS itemNumName 
FROM Item it inner join JITVendors jit on it.Catalog_code = jit.Catalog_code 
WHERE jit.VendorName = 'Vendor' 
ORDER BY Name 
2

또 다른 옵션을 그 매번 빈 문자열을 수동으로 합체하지 않고 모든 곳에서이 작업을 수행하려는 경우 아직 언급하지 않았습니다.

SET CONCAT_NULL_YIELDS_NULL OFF 

(기본값은 켜짐). 켜져 있으면 NULL을 문자열에 연결하면 NULL이 반환됩니다. off이면이 서버 옵션은 문자열을 함께 연결할 때 빈 문자열처럼 취급합니다 (예 :이 문자열이 꺼져있을 때 NULL에 연결하면 원래 문자열이 반환 됨).

http://msdn.microsoft.com/en-us/library/ms176056.aspx

+0

그 설정에 대해 알지 못했습니다. 그래서 새로운 것을 언급하면서 +1합니다. BOL을 읽으 려구요 :) – Leigh

+0

@Leigh 저는 보통 여기에있는 다른 답변 중 하나를 사용합니다.하지만 내 마음에 와서 거기 밖으로 버릴 것이라고 생각했습니다! :-) – Bridge

+0

나는 다른 것들도 사용하지만 특별한 경우에이 설정이 유용하다는 것을 알 수있다. 무기고를위한 또 하나의 도구, 예! :) – Leigh

관련 문제