我想更新多列,如果它达到我的条件,例如
我想做类似
的事情set column1 ,column 2 ,column 3
if column1=0 if column2=0 if column3=0;
to column1=somevalue,column2=somevalue,column3=somevalue;
以下是我的查询,仅适用于1列,我想在1列以上但在同一查询中执行此操作。
SqlCommand cmd = new SqlCommand("UPDATE DwH_Staging_table SET pestpopulation1=@avg_pest1
WHERE DistrictName=@DistrictName and TownName=@TownName And VarietyOfCrop=@V_Crop And
pestpopulation1=@pest", con1);
cmd.Parameters.AddWithValue("@avg_pest1",row[3]);
cmd.Parameters.AddWithValue("@DistrictName", row[0].ToString());
cmd.Parameters.AddWithValue("@TownName",row[1].ToString());
cmd.Parameters.AddWithValue("@V_Crop",row[2].ToString());
cmd.Parameters.AddWithValue("@pest",0);
cmd.ExecuteNonQuery();
答案 0 :(得分:1)
如果您想在所有现有值为0时设置列,则可以在一个查询中执行此操作
UPDATE mytable
SET column1 = @value1, column2 = @value2, column3 = @value3
WHERE column1 = 0 AND column2 = 0 AND column3 = 0
但是如果每列单独等于0,我猜你想要单独设置它们。在这种情况下,你需要执行3个单独的查询。
UPDATE mytable
SET column1 = @value1
WHERE column1 = 0
UPDATE mytable
SET column2 = @value2
WHERE column2 = 0
UPDATE mytable
SET column3 = @value3
WHERE column3 = 0