반응형
왼쪽 외부 결합에서 반환된 기본 Null 값 바꾸기
왼쪽 외부 조인을 사용하여 3개의 테이블에서 데이터를 반환하는 Microsoft SQL Server 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'
가능하면 Quantity와 Regular Price를 디폴트로 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
올바른 키워드는 (not)입니다.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
Oracle의 경우 다음을 사용할 수 있습니다.
NVL(columnName,deafultValue)
:- NVL은 쿼리 출력에서 늘 값을 기본값으로 변환하기 위해 사용됩니다.예를 들어 null 값을 'NA'로 바꾸려면 다음과 같은 방법을 사용하십시오.
SELECT NVL(columnName,'NA') FROM tableName
언급URL : https://stackoverflow.com/questions/1664266/replace-default-null-values-returned-from-left-outer-join
반응형
'programing' 카테고리의 다른 글
Java에서 모든 열거값을 가져오려면 어떻게 해야 합니까? (0) | 2022.09.13 |
---|---|
팬더 적용 함수에서 행의 색인을 얻는 것 (0) | 2022.09.13 |
PyCharm에서 최대 회선 길이를 설정하려면 어떻게 해야 합니까? (0) | 2022.09.13 |
JavaScript 가비지 컬렉션이란? (0) | 2022.09.13 |
헤더('Content-Type:text/plain')가 꼭 필요합니까? (0) | 2022.09.13 |