[SQL] LINQ case 문
SQLLINQ case 문
내가 LINQ에서 CASE 문 (C #을) 몇 가지 도움이 필요합니다
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로 전환에서 시작 내 :
이 쿼리는 상거래 사이트에 생산에서 재고 상태를 업데이트합니다.
해결법
-
==============================
1.당신의 후 LINQ (당신의 코멘트를 읽기)에서의 단지 CASE 문은 다음이의 예입니다 만약 ...
당신의 후 LINQ (당신의 코멘트를 읽기)에서의 단지 CASE 문은 다음이의 예입니다 만약 ...
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" ) } );
-
==============================
2.여기 내 진행은 아직 전혀 작동하지 않는, 지금까지, 그러나 시작이다 :
여기 내 진행은 아직 전혀 작동하지 않는, 지금까지, 그러나 시작이다 :
var query2 = from items in db.cdsItems where items.ItemTrackingCode.Equals("A") && (items.ItemQtyOnHand - items.ItemQtyCommitted) > 0 select new { items, qty = ( items.ItemPromoFlag.Equals("1") ? "100000" : items.ItemCat1.Equals("1") ? "100000" : items.ItemSaleStatus.Equals("O") ? "0" : (items.ItemQtyOnHand - items.ItemQtyCommitted).ToString ) };
이 구문은 나에게 너무 어색한 것 같다 ... 난 그냥 통과를 통해 수 SQL.
-
==============================
3.먼저, 업데이트 할 것을 항목을 선택합니다. 그런 다음, 일반 C #으로 그들을 업데이트 할 수 있습니다. 변경 내용을 제출합니다.
먼저, 업데이트 할 것을 항목을 선택합니다. 그런 다음, 일반 C #으로 그들을 업데이트 할 수 있습니다. 변경 내용을 제출합니다.
var q = from osc in MyDataContext.osc_products join cds in cds_oeinvitem on osc.products_model equals cds.itemno into p where osc.Itemwebflag == 'Y' select p; foreach (var item in q) { if (item.itempromoflag != "N") item.products_quantity = 100000; else if ((new[] { 1, 2, 31 }.Contains(item.itemcat1)) && (item.itemsalestatus == 'S')) item.products_quantity = 100000; else if (item.itemsalestatus == 0) item.products_quantity = 0; else item.products_quantity = item.itemqtyonhand - item.itemqtycommitted; } MyDataContext.SubmitChanges();
-
==============================
4.응용 프로그램 서버에 업데이트 루프를하는 것보다 더 좋을 것입니다, 저장 프로 시저에 하나의 UPDATE 문을 사용합니다.
응용 프로그램 서버에 업데이트 루프를하는 것보다 더 좋을 것입니다, 저장 프로 시저에 하나의 UPDATE 문을 사용합니다.
-
==============================
5.http://bartdesmet.net/blogs/bart/archive/2008/03/30/a-functional-c-type-switch.aspx는 기능 스위치 케이스 구현에 대해 이야기합니다.
http://bartdesmet.net/blogs/bart/archive/2008/03/30/a-functional-c-type-switch.aspx는 기능 스위치 케이스 구현에 대해 이야기합니다.
-
==============================
6.당신은 대량 업데이트를 수행하고 있지만 링크는 순전히 쿼리 및 객체 선택 도구입니다. 이 경우 확실히 데이터베이스 서버입니다 작업에 적합한 도구를 ... 사용합니다.
당신은 대량 업데이트를 수행하고 있지만 링크는 순전히 쿼리 및 객체 선택 도구입니다. 이 경우 확실히 데이터베이스 서버입니다 작업에 적합한 도구를 ... 사용합니다.
-
==============================
7.Linq에에는 "업데이트"문이 없다 (사용 중 맛, 그것은 LinqToSQL 또는 LinqToEntities 수).
Linq에에는 "업데이트"문이 없다 (사용 중 맛, 그것은 LinqToSQL 또는 LinqToEntities 수).
LINQ 엄격 쿼리 언어를 제공한다.
당신이 LinqToSQL를 사용하여 데이터를 업데이트 할 경우, 당신은 첫 번째 쿼리에 업데이트에 필요한 항목에 대한 컨텍스트를 필요, 그들에 다음 루프는 데이터베이스에 변경 사항을 저장하기 위해 호출 SubmitChanges에 마지막으로 자신의 속성을 변경합니다.
from https://stackoverflow.com/questions/936028/linq-case-statement by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server의 동적 피벗 열 (0) | 2020.03.27 |
---|---|
[SQL] MySQL을위한 이전에 상응하여 연결 (0) | 2020.03.27 |
[SQL] DB2 쉼표 그룹에 의해 출력을 분리 (0) | 2020.03.27 |
[SQL] 왜 MySQL은 집계 함수없이 쿼리 "에 의해 그룹을"할 수 있습니까? (0) | 2020.03.27 |
[SQL] 인간화 또는 자연수 혼합 된 단어 및 번호 문자열의 정렬 (0) | 2020.03.27 |