巧用Oracle的BITAND函数

本文介绍了Oracle的BITAND函数,用于在位运算中处理复选资质的情况。文章详细阐述了如何利用该函数设计员工资质表,包括两个设计示例,并探讨了数据使用方案,如查询特定资质的员工。尽管方案2在数据库可读性和解析成本上有挑战,但其存储效率高,特别适合Oracle环境。文章最后提出对于复选属性设计的思考,鼓励读者分享自己的实现方式。
摘要由CSDN通过智能技术生成

一、函数介绍

返回两个数值型数值在按位进行 AND 运算后的结果。
语法
BITAND(nExpression1, nExpression2)
举例

-- 以下返回结果分别为1,0,4
-- 分析,如BITAND(12,4),将两个入参二进制化,即1100与100,进行位与操作结果为100,转化为十进制即为4
SELECT BITAND(3,1),BITAND(11,4),BITAND(12,4) FROM DUAL

二、应用场景

假设有这么一项功能:维护某工作人员的执业资质,执业资质是复选项(即工作人员可以同时拥有资质1、资质2、资质3……)

三、相关设计方案

3.1 设计示例1

员工资质表,数据示例:

员工id 资质
1 资质1
1 资质2
1 资质3

3.2 设计示例2

a.定义一张类似参数维护的表,数据示例:

资质名称 资质数值
资质1 1
资质2 2
资质3 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值