> 데이터 베이스 > MySQL 튜토리얼 > SQL CASE 문을 LINQ 쿼리로 효과적으로 변환하려면 어떻게 해야 합니까?

SQL CASE 문을 LINQ 쿼리로 효과적으로 변환하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2025-01-11 19:11:41
원래의
793명이 탐색했습니다.

How Can I Effectively Translate SQL CASE Statements into LINQ Queries?

SQL CASE 문을 LINQ로 변환: 실용 가이드

이 문서에서는 SQL CASE 문을 LINQ 문으로 변환하는 문제를 다룹니다. 사용자가 다음 SQL 조각 번역에 도움을 요청했습니다:

<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>
로그인 후 복사

제공된 초기 LINQ 시도가 충분하지 않았습니다.

<code class="language-csharp">cdsDBDataContext db = new cdsDBDataContext();
  var query = from items in db.cdsItems
              where items.ItemHandHeldFlag.Equals("Y") && 
              items.ItemQtyOnHand -  items.ItemQtyCommitted > 0
  select items;</code>
로그인 후 복사

이 쿼리는 데이터만 필터링합니다. SQL CASE 문의 논리를 구현하지 않습니다.

LINQ의 CASE 문에 해당하는 내용을 더 명확하게 설명하기 위해 더 간단한 예를 살펴보겠습니다.

<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>
로그인 후 복사

이는 CASE 문의 동작을 모방하기 위해 삼항 조건 연산자(?:)를 사용하는 방법을 보여줍니다. 조건은 순차적으로 평가되어 각 일치 항목에 대해 적절한 값을 반환합니다. 결과는 각각 숫자와 텍스트 표현을 포함하는 일련의 익명 개체입니다. 이 원칙을 원래 SQL CASE 문에 적용하려면 LINQ 쿼리 내에서 유사한 중첩 조건부 접근 방식이 필요합니다. 이를 db.cdsItems 내의 특정 데이터 구조 및 관계에 적용하고 잠재적으로 itempromoflag, itemcat1itemsalestatus에 액세스하기 위해 다른 테이블과 조인합니다. ELSE.

조건은 이전 조건 중 어느 것도 충족되지 않는 경우 기본값을 나타냅니다.

위 내용은 SQL CASE 문을 LINQ 쿼리로 효과적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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