sql位运算(包括权限的操作)

sql位运算(包括权限的操作)

ID:34726138

大小:112.38 KB

页数:8页

时间:2019-03-10

sql位运算(包括权限的操作)_第1页
sql位运算(包括权限的操作)_第2页
sql位运算(包括权限的操作)_第3页
sql位运算(包括权限的操作)_第4页
sql位运算(包括权限的操作)_第5页
资源描述:

《sql位运算(包括权限的操作)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SQL位运算在SQLServer,采用1,2,4,8,16.....等用数字标识的状态字段可以进行累加,对存在的几种状态进行组合,从而可形成各种组合状态例如:一条记录该字段原来的数字是,2,如我们想加上4,则可以用updatet_UsersetiFlag=iFlag

2、4whereUserID=1(iFlag为该字段名)例2:在加上4之后我们想去掉4怎么办呢,可以这样实现updatet_UsersetiFlag=iFlag^4whereUserID=1这样就又把4从该记录中去掉了.如果我们想选择所有为2的记录该怎么做

3、呢,可以这样实现select*fromt_UserwhereiFlag&2=2SQL中的位运算不但可以取出各种值,而且我们可以对他对数据进行排序举例如下,新闻列表中的一个字段标识为1:置顶2:不置顶4:推荐8:不推荐该字段的值可以为这4种状态的组合,如果我们根据一定条件想把所有置顶的放在前面该如何做呢select*fromt_NewsorderbyiFlag&1desc这样我们就把所有置顶的贴子排在前面,当然这里可以加上一定的Where条件,在Where里也可可以加一定的位运算,关于位运算可以查阅相应的SQL帮助下

4、面来讲一讲C#中的枚举位运算这里我们定义一个枚举   [Flags]   enumUserFlag   {       a=1,       b=2,       c=4,       d=8,       e=16,       f=32   }在代码里加上如下处理   protectedvoidPage_Load(objectsender,EventArgse)   {       if(!IsPostBack)       {           这是第一种写法:  stringstrSQL="select*

5、fromv_UserwhereiFlag&@iFlag=@iFlag";         这是第二种写法:  stringstrSQL="select*fromv_Userwhere @iFlag

6、iFlag=iFlag           //SqlParameterparm=newSqlParameter("@iFlag",SqlDbType.Int,4);           //parm.Value=UserFlag.a

7、UserFlag.b;           SqlConnectioncon=newS

8、qlConnection("server=.;database=Sinvan_TexDB;UserId=sa;pwd=123;");           SqlCommandcomm=newSqlCommand(strSQL,con);           comm.Parameters.Add("@iFlag",SqlDbType.Int,4).Value=UserFlag.a

9、UserFlag.b;           SqlDataAdapteradp=newSqlDataAdapter(comm);    

10、       DataTabledTable=newDataTable();           adp.Fill(dTable);           UserFlaguserFlag=(UserFlag)Enum.Parse(typeof(UserFlag),dTable.Rows[0][11].ToString());        }   }进行处理之后userFlag就是数据库中存在的各种组合我们同样可对其进行一定的位运算处理如我们想加上UserFlag.c可进行如下操作userFlag=userFlag

11、

12、Userflag.c如想去掉UserFlag.c可进行如下操作userFlag=userFlag^UserFlag.c如我们要判断是该标识中是否存在c可进行如下操作(userFlag&UserFlag.c)==UserFlag.c是不是与SQLServer中的操作类似,位运算不管什么语言都是通用的,呵呵可惜Access不支持位运算  select2

13、8      --10 select2

14、8

15、1   --11select10&8   --8,包含,10=8+2 select10&2   --2,包含,10=2+8

16、 select10&4   --0,不包含 select19&16 --16,包含,19=16+2+1 select19&8   --0,包含,19=16+2+1select*fromSqlBitOperationwhereFBitTags&4=4 在权限中的应用1、两张表(1)、操作与权限标志表ifexists(select*fromsysobjectsw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。