热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

Oracle技术的位操作

来源:TechTarget, 作者:Jeff McCormick 时间:2007-09-09 Tag: 点击:

 通过添加数据源主键的值,她可以存储一个值并利用“按位与”操作来搜索字段。例如,一个由合并多个数据源而得到的数据所组成的行;CUSTOMER, SALES 和CLAIMS在data_source_sot字段中值为13(1+4+8)。

  按位与

  语法

  bitand::=

  按位与在两个表达式expr1 和expr2的各位上进行与操作,两者都必须解析成非负整数,然后返回一个整数。

  参考:Oracle Database SQL Reference 10g Release 1 (10.1)

  用户可以查询单个字段,来决定一行的“真实源”。如果“按位与”的操作成功了,那么data_source_id (expr2)就会返回一个除0以外的值。

  这里我们看到来自SALES系统的客户数据。 

select bitand(data_source_sot,4)
  from customer
  where customer_name = 'National Gum Distributors';

Data Source ID
--------------
             4

  这个函数通常与DECODE函数一起使用,如下面的例子中所显示的: 

select  decode(bitand(data_source_sot,1) , 1,'CUSTOMER ' ,NULL)
      ||decode(bitand(data_source_sot,2) , 2,'MARKETING ',NULL)
      ||decode(bitand(data_source_sot,4) , 4,'SALES '    ,NULL)
      ||decode(bitand(data_source_sot,8) , 8,'CLAIMS '   ,NULL)
      ||decode(bitand(data_source_sot,16),16,'SERVICE'   ,NULL)
      "Data Sources"
  from customer
  where customer_name = 'National Gum Distributors'; 
 
Data Sources
-------------------------------------------
CUSTOMER SALES CLAIMS

  以下部分表显示了数据源和累计值之间的关系: 

01  CUSTOMER
02  MARKETING
03  CUSTOMER,MARKETING
04  SALES
05  CUSTOMER,SALES
06  MARKETING,SALES
07  CUSTOMER,MARKETING,SALES
08  CLAIMS
09  CUSTOMER,CLAIMS
10  MARKETING,CLAIMS
11  CUSTOMER,MARKETING,CLAIMS
12  SALES,CLAIMS
13  CUSTOMER,SALES,CLAIMS
14  MARKETING,SALES,CLAIMS
15  CUSTOMER,MARKETING,SALES,CLAIMS
16  SERVICE
.
.
.
31  CUSTOMER,MARKETING,SALES,CLAIMS,SERVICE


最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册