[SQL] 가입 왼쪽 외부에서 반환 된 기본 널 값을 교체
SQL가입 왼쪽 외부에서 반환 된 기본 널 값을 교체
나는 세 개의 테이블에서 데이터를 반환은 왼쪽 외부 조인을 사용하는 마이크로 소프트 SQL 서버 2008 쿼리가 있습니다. 여러 번,이 두 번째와 세 번째 테이블에 데이터없고 내가 왼쪽 외부 조인을위한 기본이라고 생각 널을 얻을 수 있도록. select 문에서 기본값을 대체 할 수있는 방법이 있습니까? 나는 테이블 변수로 선택할 수있는 해결 방법이 있지만 약간의 오염을 느낀다.
SELECT iar.Description, iai.Quantity, iai.Quantity * rpl.RegularPrice as 'Retail',
iar.Compliance FROM InventoryAdjustmentReason iar
LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId)
LEFT OUTER JOIN Item i on (i.Id = iai.ItemId)
LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo)
WHERE iar.StoreUse = 'yes'
가능하면 I 0으로 기본값으로 수량 및 RegularPrice을하고 싶습니다.
해결법
-
==============================
1.쉽게로 그의
쉽게로 그의
IsNull(FieldName, 0)
이상 완전히 :
SELECT iar.Description, ISNULL(iai.Quantity,0) as Quantity, ISNULL(iai.Quantity * rpl.RegularPrice,0) as 'Retail', iar.Compliance FROM InventoryAdjustmentReason iar LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId) LEFT OUTER JOIN Item i on (i.Id = iai.ItemId) LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo) WHERE iar.StoreUse = 'yes'
-
==============================
2.MySQL의 또는 SQLite는의 경우 정확한 키워드는 IFNULL (하지 ISNULL)입니다.
MySQL의 또는 SQLite는의 경우 정확한 키워드는 IFNULL (하지 ISNULL)입니다.
SELECT iar.Description, IFNULL(iai.Quantity,0) as Quantity, IFNULL(iai.Quantity * rpl.RegularPrice,0) as 'Retail', iar.Compliance FROM InventoryAdjustmentReason iar LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId) LEFT OUTER JOIN Item i on (i.Id = iai.ItemId) LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo) WHERE iar.StoreUse = 'yes'
-
==============================
3.
COALESCE(field, 'default')
예를 들면 :
SELECT t.id, COALESCE(d.field, 'default') FROM test t LEFT JOIN detail d ON t.id = d.item
또한, 유착 기능으로 자신의 NULL을 확인하기 위해 여러 열을 사용할 수 있습니다. 예를 들면 :
mysql> SELECT COALESCE(NULL, 1, NULL); -> 1 mysql> SELECT COALESCE(0, 1, NULL); -> 0 mysql> SELECT COALESCE(NULL, NULL, NULL); -> NULL
from https://stackoverflow.com/questions/1664266/replace-default-null-values-returned-from-left-outer-join by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의에로 선택 (0) | 2020.07.23 |
---|---|
[SQL] INSERT INTO 대 INSERT (0) | 2020.07.23 |
[SQL] 포스트 그레스에서 행 번호를 선택 (0) | 2020.07.23 |
[SQL] 어떻게 2008 SQL Server의 사용자 정의 테이블 형식의 존재를 확인? (0) | 2020.07.23 |
[SQL] CodeIgniter는 $ this-> DB->의 get (), 어떻게 특정 행에 대한 값을 반환합니까? (0) | 2020.07.23 |