谁能告诉我,在SQL查询中简单地使用位运算符并举例说明

谁能告诉我,在SQL查询中简单地使用位运算符并举例说明,sql,sql-server,Sql,Sql Server,我不确定位运算符何时以及如何处理我们的查询,如SP或函数 有谁能给我举个简单的例子,让我了解位运算符。在TSQL中,它是这样的 SELECT a_int_value & b_int_value FROM bitwise; 根据如果我理解你的问题,你想知道位运算符是用来做什么的,以及如何做 不必详细讨论按位运算符对位图的作用,位图是一种使用一个数字存储多个属性的方法 假设我们想要一个数字来存储关于某人的个人信息,例如性别和婚姻状况 我们首先分配要跟踪二进制整数的属性,即 Male

我不确定位运算符何时以及如何处理我们的查询,如SP或函数


有谁能给我举个简单的例子,让我了解位运算符。

在TSQL中,它是这样的

SELECT a_int_value & b_int_value  
FROM bitwise;  

根据

如果我理解你的问题,你想知道位运算符是用来做什么的,以及如何做

不必详细讨论按位运算符对位图的作用,位图是一种使用一个数字存储多个属性的方法

假设我们想要一个数字来存储关于某人的个人信息,例如性别和婚姻状况

我们首先分配要跟踪二进制整数的属性,即

Male = 2
Female = 4
Trans = 8
Single = 16
married = 32
Divorced = 64
所以一个已婚男性的代表是34个男性(2)+已婚(32)=34

使用这样的按位运算符很容易测试属性

DECLARE @Male AS INT
DECLARE @FeMale AS INT
DECLARE @Trans AS INT
DECLARE @Single AS INT
DECLARE @Married AS INT
DECLARE @Divorced AS INT

SET @Male = 2
SET @Female = 4
SET @Trans = 8
SET @Single = 16
SET @Married = 32
SET @Divorced = 64

DECLARE @Person AS INT

-- Married male is 34
SET @Person = @male + @Married

-- Is person female?
IF @person & @female = @female
  BEGIN
    PRINT 'They are female'
  END
ELSE
  BEGIN
    PRINT 'Not Female'
  END 

ANSI SQL没有这样的运算符。您使用的是哪种dbms?我使用的是SQL server 2012,您可能应该避免使用位运算符。此链接显示了运算符的行为,但我想知道如何在查询中使用位运算符。