`
jsczxy2
  • 浏览: 1281379 次
  • 性别: 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 Server的位运算功能巧妙解决多选查询方法

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

    sql学习 哪些SQL存在列运算.sql

    sql学习 哪些SQL存在列运算.sql

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

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

    sql语句妙用. sql语句妙用.doc

    在文档"sql语句妙用.doc"中,主要讲述了SQL语句的一些高级用法,特别是动态SQL和与Identity列相关的操作。 首先,动态SQL是SQL中一个非常重要的特性,允许在运行时构建和执行SQL命令。在例子中,`EXEC`和`sp_...

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

    用友U8 MRP运算存储过程

    hive udaf 实现按位取与或

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

    SQL语句在开发中的妙用

    首先,动态SQL是SQL中的一个强大特性,它允许我们在运行时构建和执行SQL语句。动态SQL的基本语法通常涉及使用`EXEC`或`sp_executesql`存储过程。例如,当字段名、表名或数据库名需要作为变量处理时,就必须使用动态...

    sql学习 函数索引妙用之部分记录建索引.sql

    sql学习 函数索引妙用之部分记录建索引.sql

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

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

    sqlserver2008 32位 64位 客户端

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

    SQL练习题中的集合运算实例详解及应用场景

    使用场景及目标:适用于日常的数据管理工作中遇到的类似问题解决方法的学习与练习,增强用户对于SQL集合运算的理解与运用能力。 阅读建议:读者应在实际操作环境中尝试文档提供的查询语句,边做边学可以更好地掌握...

    MSSQL中进行SQL除法运算结果为小数却显示0的解决方法

    在SQL Server (MSSQL) 中,进行数值运算时,特别是除法运算,有时会遇到一个特殊现象:当结果的小数部分非零,但整数部分为0时,结果显示为0,而不是预期的小数结果。这通常是由于数据类型自动转换和精度丢失导致的...

    oracle位运算

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

    关系代数中交运算与差运算的SQL语句实现.pdf

    然而,SQL中没有提供专门的运算符来实现这三个运算,导致初学者难以理解关系代数和SQL之间的关系。 在关系代数中,交运算(Intersection)是指两个关系中的公共部分,记作R ∩ S = {t | t ∈ R ∧ t ∈ S}。在SQL中...

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

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

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

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

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

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

    64位系统SQL SERVER 2008

    在64位环境中,SQL Server 2008能够更有效地运行并行处理任务,提高多线程应用程序的性能。 1. **硬件需求**:在64位系统上安装SQL Server 2008之前,需要确保硬件兼容。这包括至少一个64位兼容的处理器,足够的...

Global site tag (gtag.js) - Google Analytics