`
jsczxy2
  • 浏览: 1277340 次
  • 性别: 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子查询。例如,当你需要找出满足某些条件的主表记录,且这些记录必须关联到子表中所有...

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

    用友U8 MRP运算存储过程

    SQL语句在开发中的妙用

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

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

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

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

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

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

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

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

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

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

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

    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语句妙用,各种sql语句的详细用法与讲解

    SQL(Structured Query Language)是用于管理关系数据库的标准语言,它的妙用在于能够高效地处理和检索数据。本篇内容主要涉及SQL语句的详细用法,特别是动态SQL的运用,这对于编写流畅的程序至关重要。 1. 动态SQL...

    高职学院数据库原理教学探讨——如何用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...

Global site tag (gtag.js) - Google Analytics