필자는 이해하려고하는 일부 SQL 문 (다른 누군가가 작성한 문)을 가지고 있습니다. 이 SQL에서는 아래와 같이 'Weight'를 계산합니다.C# ASP.net에서 SQL 문에 NULLIF 및 ISNULL을 처리하는 방법은 무엇입니까?
ISNULL(NULLIF(CASE WHEN ISNULL(m.Override,0) = 1
THEN m.OverWeight
ELSE ISNULL(itemWeight.Weight,groupWeight.Weight) END,0),5) AS Weight
이제 ASP.net에서이 논리를 사용해야합니다. C#, ASP.net, SQL에 익숙하지 않아서 고심하고 있습니다. 나는 지금까지 다음과 같이했다.
//Calculate weight
bool override = DataConversion.GetBoolean(row["Override"]);
decimal overWeight = DataConversion.GetDecimal(row["OverWeight"]);
decimal itemWeight = DataConversion.GetDecimal(row["ItemWeight"]);
decimal groupWeight = DataConversion.GetDecimal(row["GroupWeight"]);
decimal weight= override? DataConversion.GetDecimal(row["OverWeight"]): 5;
var par = new par(
Id: DataConversion.GetInt(row["MaterialId"]),
weight: weight
);
내가 직면하고 문제는 다음과 같습니다 어떻게 내 조건 문에 ELSE ISNULL(itemWeight.Weight,groupWeight.Weight
을 사용합니까? 즉 decimal weight= override?DataConversion.GetDecimal(row["OverWeight"]): 5;
입니다.
나는 그것을 돕기에 충분한 ASP.net을 모르지만, 그 'CASE' 표현은 지나치게 복잡합니다. 그것과 같이 재 표현 될 수있다 : CASE' \t WHEN m.Override = 1 THEN m.OverWeight \t WHEN ISNULL (itemWeight.Weight, groupWeight.Weight) = 0 THEN 5 \t ELSE ISNULL (itemWeight.Weight, groupWeight.Weight) END AS 무게 – Lamak