반응형
왼쪽 외부 조인에서 반환 된 기본 Null 값 바꾸기
왼쪽 외부 조인을 사용하여 세 개의 테이블에서 데이터를 반환하는 Microsoft SQL Server 2008 쿼리가 있습니다. 여러 번 두 번째 및 세 번째 테이블에 데이터가 없으므로 왼쪽 외부 조인의 기본값이라고 생각하는 null이 표시됩니다. 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'
가능한 경우 Quantity 및 RegularPrice의 기본값을 0으로 설정하고 싶습니다.
그것은만큼 쉽습니다
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'
의 경우 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'
MySQL
COALESCE(field, 'default')
예를 들면 :
SELECT
t.id,
COALESCE(d.field, 'default')
FROM
test t
LEFT JOIN
detail d ON t.id = d.item
또한 여러 열을 사용 NULL
하여 COALESCE 함수 로 확인할 수 있습니다 . 예를 들면 :
mysql> SELECT COALESCE(NULL, 1, NULL);
-> 1
mysql> SELECT COALESCE(0, 1, NULL);
-> 0
mysql> SELECT COALESCE(NULL, NULL, NULL);
-> NULL
반응형
'programing' 카테고리의 다른 글
하위 폴더에서 모듈 가져 오기 (0) | 2020.09.12 |
---|---|
인텔 x86 에뮬레이터 가속기 (HAXM 설치 프로그램) 버전 6.0.5가 Windows와 호환되지 않는 것으로 표시됨 (0) | 2020.09.12 |
자바 스크립트 객체 push () 함수 (0) | 2020.09.12 |
C #에서 volatile 키워드의 사용법 설명 (0) | 2020.09.12 |
WCF 서비스, 시간 제한을 늘리는 방법은 무엇입니까? (0) | 2020.09.11 |