如何在一列中选择除一个值以外的所有数据

本文关键字:数据 一个 选择 一列 | 更新日期: 2023-09-27 18:24:08

我写了这个c#代码,从学生信息中选择除了一个card_id之外的card_id,但我从网上读到except子句在访问中不起作用。。。我该怎么做?请帮帮我?

ol_com.CommandText = "select [card_id] from student_info except select [card_id] from student_info where [card_id] = '"+update_st_card.Text+"'";
                reader = ol_com.ExecuteReader();
                if (reader.HasRows)
                {
                    up_st_lbl2.Text = "message";
                }

如何在一列中选择除一个值以外的所有数据

我认为您不必要地进行复杂查询。

使用NOT IN 可以很容易地解决

ol_com.CommandText = "select [card_id] from student_info 
where [card_id] not in ('"+update_st_card.Text+"')";

您在插入时没有问题,所以为了更新,请尝试这个简单的方法。update_st_card.Text只有一个card_Id。

ol_com.CommandText = "select [card_id] from student_info 
where [card_id] ='"+update_st_card.Text+"'";
reader = ol_com.ExecuteReader();
string str=string.Empty();
if (reader.HasRows)
{
  //Update here
    str="Update student_info set mobile_no='Your new value to set'
             where [card_id] ='"+update_st_card.Text+"'";
}
else
{
  //insert here
    str="Your Insert command";
}
ol_com.CommandText = str;
ol_com.ExecuteNonQuery();

我认为这将解决您的问题,我们可以不在任何地方使用acess、sql server、nhibernate

ol_com.CommandText = "select [card_id] from student_info where [card_id] not in ( select [card_id] from student_info where [card_id] = '"+update_st_card.Text+"'");
reader = ol_com.ExecuteReader();
if (reader.HasRows)
{
   up_st_lbl2.Text = "message";
}

我认为你可以在中使用NOT

您的查询可以写成,

select [card_id] 
from student_info 
where [card_id] NOT IN 
 (select [card_id] from student_info where [card_id] = '"+update_st_card.Text+"'")