`
jsczxy2
  • 浏览: 1269574 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

sql中位运算的妙用

阅读更多

数据库采用1,2,4,8,16.....等用数字标识(2的n次方)的状态字段可以进行累加,对存在的几种状态进行组合,从而可形成各种组合状态

例如:一条记录该字段原来的数字是,2,如我们想加上4,则可以用

update t_User set iFlag = iFlag | 4 where UserID = 1

(iFlag 为该字段名)

例2:在加上4之后我们想去掉4怎么办呢,可以这样实现

update t_User set iFlag = iFlag ^ 4 where UserID = 1

这样就又把4从该记录中去掉了.

如果我们想选择所有为2的记录该怎么做呢,可以这样实现

select * from t_User where iFlag & 2 = 2

SQL中的位运算不但可以取出各种值,而且我们可以对他对数据进行排序

举例如下,新闻列表中的一个字段标识为

1:置顶

2:不置顶

4:推荐

8:不推荐

该字段的值可以为这4种状态的组合,如果我们根据一定条件想把所有置顶的放在前面该如何做呢

select * from t_News order by iFlag & 1 desc

这样我们就把所有置顶的贴子排在前面,当然这里可以加上一定的Where 条件,在Where 里也可以加一定的位运算

分享到:
评论

相关推荐

    SQL语言中差运算与除运算实现的几种方法.pdf

    除运算在SQL中不能直接实现,但可以通过基本的SQL运算组合来模拟除运算。具体实现方法包括使用NOT EXISTS谓词、使用自连接以及使用嵌套查询等。例如,要找出选修了2号课程和5号课程的学生学号,可以使用如下SQL语句...

    sql妙用(绝妙的sql语句)

    在SQL中,有些技巧和用法能够显著提高你的工作效率,使你更好地利用数据库。以下是一些关于SQL妙用的关键知识点: 1. **动态SQL**:动态SQL是当你在运行时构建SQL语句时使用的,通常涉及到字符串变量来构建查询。在...

    通过SQL Server的位运算功能巧妙解决多选查询方法

    在SQL Server中,位运算是一种高效的数据处理方式,尤其在处理多选查询场景时,可以显著提高查询效率。本文将深入探讨如何利用位运算来解决多选查询的问题,并提供一个标准的解决方案。 首先,我们要理解位运算的...

    关系代数中“除法”运算与SQL中带有exists子查询的对比教学.pdf

    关系代数中除法运算与SQL中exists子查询之间的联系,其实在某些特定的查询场景下,关系代数的除法运算可以转化为SQL中的exists子查询。例如,当你需要找出满足某些条件的主表记录,且这些记录必须关联到子表中所有...

    hive udaf 实现按位取与或

    在“hive udaf 实现按位取与或”的场景中,我们主要探讨如何使用UDAF来实现数据的按位逻辑运算,如按位与(AND)和按位或(OR)。 一、Hive UDAF基本概念 UDAF是一种特殊的用户自定义函数,它负责处理一组输入值并...

    用友U8 MRP运算存储过程.sql

    用友U8 MRP运算存储过程

    sql学习 函数索引妙用之减少递归的调用.sql

    sql学习 函数索引妙用之减少递归的调用.sql

    关系代数运算与SQL查询的对应关系

    除法运算在关系代数中用来找出满足某种条件的行,通常用于复杂的查询,但在SQL中并没有直接对应的运算符。然而,通过使用子查询和其他高级SQL功能,可以间接实现除法运算的效果。 ### 总结 关系代数提供了一套强大...

    sql server的一个有趣的bit位运算分享

    位运算在SQL Server中虽然不像在其他编程语言中那样常见,但对于优化查询和处理特定逻辑时,它们提供了一种高效且直接的方法。理解并熟练运用这些运算符,可以在编写T-SQL脚本时提高效率,特别是在处理大量数据和...

    oracle位运算

    本文将详细介绍Oracle中的基本位运算操作,包括与、或、异或、位移等,并提供相应的SQL语句和函数定义。 #### 二、基本位运算 ##### 1. 与 (AND) 与运算符用于比较两个数值的每一位,并返回结果。如果对应位置上...

    SQLTracker Oracle跟踪工具(支持64位)

    SQLTracker是一款专为Oracle数据库设计的高性能监控工具,尤其针对64位操作系统,如win7和win10,提供强大的跟踪和分析功能。在数据库管理领域,了解并掌握SQLTracker对于提升数据库性能优化和问题排查至关重要。 ...

    高职学院数据库原理教学探讨——如何用SQL语句实现关系代数的运算.pdf

    例如,选择运算对应于SQL的SELECT语句,投影运算对应于SELECT语句中的列选择,而连接运算在SQL中则通过JOIN语句来实现。虽然SQL的表达方式比关系代数更为直观和灵活,但掌握其与关系代数运算的对应关系对于深入理解...

    sqlserver2008 32位 64位 客户端

    此压缩包包含了针对32位和64位操作系统的SQL Server 2008客户端工具,适用于不同硬件环境下的用户。以下是关于SQL Server 2008客户端的一些关键知识点: 1. **32位与64位系统兼容性**:SQL Server 2008提供32位和64...

    SQL Server 2012 SP1 64位 简体中文企业版.iso 安装包

    SQL Server 2012 SP1 64位 简体中文企业版.iso 安装包

    sql学习 反向键索引妙用之能减少争用.sql

    sql学习 反向键索引妙用之能减少争用.sql

    SQL Server环境下交与差运算的设计与实现.pdf

    关系代数中定义的并、交、差运算符分别对应SQL中的UNION(并操作)、INTERSECT(交操作)和MINUS(差操作)。在数据库管理系统中,如SQL Server,这些操作并不总是被完全支持,尤其是在不同版本之间可能存在差异。 ...

    sql2000-2005-2012错位运算

    列举sql2000-2005-2012错位运算 3种不同方法

    sqlservr32位与64位

    sqlservr64.rar sqlservr32.rar 3、进入SQL Server 2005的安装路径,进入MSSQL文件夹下面的Binn文件夹,在该文件夹里面搜索“sqlservr.exe”文件,并把它复制一份到桌面或其它地方作为备份,然后把上面第2步下载的...

Global site tag (gtag.js) - Google Analytics