如何在sql server中使用true, false和两个条件
本文关键字:false 条件 两个 true sql server | 更新日期: 2023-09-27 18:15:53
我的设计中有一个复选框(Active)。它存储0或1。我必须根据复选框的值来搜索项目。,或活跃或不活跃,或两者兼而有之。对于活动的我可以用1,对于非活动的我可以用0。但是我需要使用所有的条件(真,假,真,假)。
假设您已经有一个WHERE
语句,您正在检查SomeConditions
,那么您只需这样做:
WHERE SomeConditions AND Active = 1
不活跃的…WHERE SomeConditions AND Active = 0
要么…// Just leave the Active out of the WHERE statement
WHERE SomeConditions
假设:
- 在 列中,0代表非活动,1代表活动
- 传递0为非活动,1为活动,2为两个参数
@active
现在改变你的WHERE
子句如下:
-- Active is the column name and @active is the query parameter
WHERE {existingConditions} AND (@active = 2 OR @active = Active)
更新:因为你没有添加适当的标签,我将基于我的答案在windows窗体和WPF的UI和ADO。. NET用于数据访问。对于其他技术,您可以使用类似的方法。
对于winforms:让我们说你的CheckBox
有它的ThreeState
属性(WPF中的IsThreeState
)设置为true
,然后你可以获得并传递这样的值:
SqlCommand cmd = conenction.CreateCommand();
sbyte active;
switch (checkBox1.CheckState)
{
case CheckState.Checked:
active = 1;
break;
case CheckState.Unchecked:
active = 0;
break;
case CheckState.Indeterminate:
active = 2;
break;
}
/*
// For WPF:
if (checkBox1.IsChecked.HasValue)
active = checkBox1.IsChecked ? 1 : 0;
else
active = 2;
*/
cmd.Parameters.AddWithValue("@active", active);