LINQ CASE 문: 심층 분석
LINQ(Language Integrated Query)에서 CASE 문은 여러 조건을 평가하고 해당 조건에 따라 다른 값을 반환합니다. 제공된 CASE 문을 LINQ로 변환하려면 삼항 조건부 연산자나 람다 식을 활용하여 유사한 기능을 얻을 수 있습니다.
다음 예를 고려하세요.
// Original CASE statement osc_products.products_quantity = CASE WHEN itempromoflag <> 'N' THEN 100000 WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000 WHEN itemsalestatus = 'O' THEN 0 ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted END
이를 LINQ로 변환하려면 삼항 조건부 연산자를 사용할 수 있습니다:
var newQuantity = (itempromoflag != 'N') ? 100000 : ((itemcat1 == '1' || itemcat1 == '2' || itemcat1 == '31') && itemsalestatus == 'S') ? 100000 : (itemsalestatus == 'O') ? 0 : cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted;
또는 람다 표현식을 사용할 수도 있습니다. 더 간결한 표현:
var newQuantity = (itempromoflag != 'N') ? 100000 : ((itemcat1 == '1' || itemcat1 == '2' || itemcat1 == '31') && itemsalestatus == 'S') ? 100000 : (itemsalestatus == 'O') ? 0 : () => cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted;
이 예에서 삼항 연산자와 람다 표현식은 유사한 조건부 검사를 수행하고 충족되는 조건에 따라 적절한 값을 반환합니다.
위 내용은 SQL CASE 문을 LINQ로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!