私は理解しようとしている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 WHEN \t 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