> 데이터 베이스 > MySQL 튜토리얼 > SQL CASE 문을 LINQ 쿼리로 변환하는 방법은 무엇입니까?

SQL CASE 문을 LINQ 쿼리로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-11 19:06:44
원래의
633명이 탐색했습니다.

How to Convert SQL CASE Statements to LINQ Queries?

LINQ의 CASE 문: 이해 및 구현

LINQ의 CASE 문을 사용하면 개발자가 여러 조건을 평가하고 결과에 따라 특정 값을 할당할 수 있습니다. 일반적으로 데이터 변환 및 조작에 사용됩니다.

복잡한 CASE 문을 LINQ로 변환

원래 질문에 제공된 CASE 문을 살펴보겠습니다.

<code class="language-sql">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  </code>
로그인 후 복사

이 명령문은 다양한 조건에 따라 osc_products 테이블의 products_Quantity 필드에 특정 값을 할당합니다. 이를 LINQ로 변환하려면 다음 구문을 사용할 수 있습니다.

<code class="language-csharp">var productsQuantity = 
    osc_products
    .Select(x => new
    {
        x.products_quantity,
        ItemPromoFlag = x.itempromoflag != "N",
        ItemCategory1 = new[] { "1", "2", "31" }.Contains(x.itemcat1),
        ItemSaleStatus = x.itemsalestatus == "S",
        AvailableQuantity = x.itemqtyonhand - x.itemqtycommitted
    })
    .Select(x => x.products_quantity = 
        x.ItemPromoFlag ? 100000 :
        (x.ItemCategory1 && x.ItemSaleStatus) ? 100000 :
        x.itemsalestatus == "O" ? 0 :
        x.AvailableQuantity
    );</code>
로그인 후 복사

LINQ 변환 이해

이 LINQ 문은 기존 products_Quantity 필드와 조건식의 부울 값을 보유하는 추가 속성을 포함하는 새로운 익명 형식을 프로젝션합니다. 그런 다음 중첩된 Select 작업을 사용하여 계산된 products_Quantity 값을 조건부로 할당합니다.

간단한 CASE문 예시

간단한 CASE 문을 LINQ로 변환하기 위해 제공된 코드 예제에서는 Select 절에서 삼항 표현식을 사용하는 방법을 보여줍니다.

<code class="language-csharp">Int32[] numbers = new Int32[] { 1, 2, 1, 3, 1, 5, 3, 1 };

var numberText =
(
    from n in numbers
    where n > 0
    select new
    {
        Number = n,
        Text = n == 1 ? "One" : n == 2 ? "Two" : n == 3 ? "Three" : "Unknown"
    }
);</code>
로그인 후 복사

이 문은 삼항 표현식을 사용하여 해당 값에 따라 숫자에 다른 텍스트 값을 할당합니다. 삼항 표현식의 구문은 다음과 같습니다.

<code class="language-csharp">condition ? true_expression : false_expression</code>
로그인 후 복사

이 예제에서는 조건을 평가하고 데이터에 값을 할당하는 간결하고 유지 관리가 쉬운 방법을 제공하여 CASE 문을 LINQ로 변환하는 방법을 보여줍니다.

위 내용은 SQL CASE 문을 LINQ 쿼리로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿