加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在SQL Server中反汇编位标志枚举

发布时间:2020-12-15 06:45:11 所属栏目:百科 来源:网络整理
导读:我在SQL Server数据库中有一个INT列,它存储与位标志枚举相关的值.例如,如果枚举是: [Flags()]public enum UserType{ StandardUser = 1,Admin = 2,SuperUser = 4} 那么SQL Server中的列可能保留值为5. 我需要做的是从另一个表中选择所有的行,其中包含有关Use
我在SQL Server数据库中有一个INT列,它存储与位标志枚举相关的值.例如,如果枚举是:
[Flags()]
public enum UserType
{
    StandardUser = 1,Admin = 2,SuperUser = 4
}

那么SQL Server中的列可能保留值为5.

我需要做的是从另一个表中选择所有的行,其中包含有关UserType的更多详细信息,所以使用值为5的示例,我想从ID 1和4的第二个表中选择行.

有没有人知道以这种方式打破数字的聪明方法 – 理想的方法应该在一定程度上递归,因为这是一个非常简化的例子,实际的表/枚举要大得多.

解决方法

SELECT * FROM first_table f 
  JOIN second_table s ON s.ID & f.Flags <> 0 
  WHERE f.something = something

这将从second_table中选择与第一个表中给定行上的任何标志匹配的所有行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读