SQL Server 通过位运算功能巧妙解决多选查询方法
2022-11-12 09:48:49
内容摘要
这篇文章主要为大家详细介绍了SQL Server 通过位运算功能巧妙解决多选查询方法,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!无论使用in
文章正文
这篇文章主要为大家详细介绍了SQL Server 通过位运算功能巧妙解决多选查询方法,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
无论使用int还是varchar,对于Status的多选查询都是不易应对的。举例,常规思维下对CustomerStatus的Enum设置如下:代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <code> [Serializable] public enum CustomerStatus { New = 0, Active = 1, Overdue = 2, Suspended = 3, Closing = 4, Closed = 5 } </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 | <code> public enum CustomerStatus { New = 1, Active = 1<<1, Overdue = 1<<2, Suspended = 1<<3, Closing = 1<<4, Closed = 1<<5 } </code> |
代码如下:
1 2 3 4 5 | <code> Select * From Customer Where [Status] & @Status = [Status] </code> |
代码如下:
1 2 3 4 5 | <code> Select * From Customer Where ( @Status is null Or [Status] & @Status = [Status]) </code> |
注:关于SQL Server 通过位运算功能巧妙解决多选查询方法的内容就先介绍到这里,更多相关文章的可以留意
代码注释