`

DB2的函数(实现按位与或)

    博客分类:
  • DB2
阅读更多
 CREATE TABLE mytab
       (name 
varchar(30not null,
        age  
int not null,
        flag1 
smallint NOT NULL,      
        flag2 
smallint NOT NULL); 
        

select NAME, AGE, FLAG1, FLAG2
  
from UU.MYTAB;
  
  --转化为二进制
CREATE FUNCTION int_to_binary (N1 Integer)
RETURNS varchar(32)
LANGUAGE SQL
SPECIFIC int2bin
BEGIN ATOMIC
DECLARE M1, i, len  Integer default 0;
DECLARE  temp_str varchar(32default ' ';
DECLARE  result_str varchar(32default ' ';
  
SET M1 = N1;
  
WHILE  M1 > 0  DO
   
SET temp_str = temp_str || cast(mod(m1,2as char(1));
   
set m1 = m1/2;
  
END WHILE;
    
set len = length (temp_str);
    
while i < len do
       
set result_str = result_str || substr(temp_str,len-i,1);
       
set i = i+1;
    
end while;
RETURN result_str;
END 


select int_to_binary(8from mytab;

drop function int_to_binary;

--按位与

--按位或
CREATE FUNCTION BITOR (N1 Integer, N2 Integer)
RETURNS Integer
LANGUAGE SQL
SPECIFIC BITORCONV  
BEGIN ATOMIC
DECLARE M1, M2, S , temp1 Integer;
DECLARE RetVal Integer DEFAULT 0
SET (M1, M2, S) = (N1, N2, 0);   
WHILE ( M1 > 0 OR M2 >  0AND S < 32 DO  
      
IF MOD(M1,2)=0 AND MOD(M2,2)=0 THEN
           
SET temp1= 0;
      
ELSE
            
SET temp1=1;
      
END IF;
  
SET RetVal = RetVal + temp1*power(2,S);
  
SET (M1, M2, S) = (M1/2, M2/2, S+1);
END WHILE;   
RETURN RetVal;
END 

select BITAND(8,12from mytab;
CREATE FUNCTION BITAND (N1 Integer, N2 Integer)
RETURNS Integer
LANGUAGE SQL
SPECIFIC BITANDOracle
CONTAINS SQL
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN ATOMIC
DECLARE M1, M2, S Integer;
DECLARE RetVal Integer DEFAULT 0;
SET (M1, M2, S) = (N1, N2, 0);
WHILE M1 > 0 AND M2 > 0 AND S < 32 DO
   
SET RetVal = RetVal + MOD(M1,2)*MOD(M2,2)*power(2,S);
   
SET (M1, M2, S) = (M1/2, M2/2, S+1);
END WHILE;
RETURN RetVal;
END 

select BITAND(8,12from mytab;
select power(2,4from mytab;
       
      
drop function BIT_OR;

 

不过现在内存空间大了,像这样巧的按位操作来实现的方法似乎已经过时了,哎~~ 进行途中就放弃了写这样的函数来实现按位的操作。这样的设计大大的影响了索引的效率。 

分享到:
评论

相关推荐

    db2转换hive的函数列表

    DB2和HIVE的函数相互转换,大部分函数都实现了的。

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    DB2中REVERSE函数的实现方法

    有哥们在群里问DB2有没有自带的reverse函数,我测试一下,DB2确实内置该函数,但是oracle,sql server都内置了该函数,来看一下

    通用的固定长度编码格式的字符串查找算法的实现

    字符串的查找是数据库应用中必不可少的操作,而且每种数据库产品(ORACLE、DB2、SYBASE、MS SQL SERVER、MYSQL等等)也都提供了对应的字符串处理函数,比如DB2的LOCATE函数。 但在实际的工作中,还是会遇到一些特殊...

    DB2中创建一个汉字拼音首字母的SQL函数

    一般对于中文数据的索引,采用词组的首汉字拼音的首字母,在DB2中并没有提供相应的函数可以取得汉字拼音的首字母,我们可以利用数据库针对中文字符集的排序功能创建一个这样的函数。本文分析了这种函数的工作原理,...

    db2-技术经验总结

    1.6. DB2实现类型ORACLE的一些功能 29 1.7. 字符数据类型转换的时候需要注意的问题(原) 30 1.8. 本地谓词的使用注意(原) 31 1.9. windows/Linux或Unix下查看DB2端口号 31 1.10. 尽量让fetch first n row only或者...

    DB2 XML 查询开发实例解析

    本文将介绍 DB2 提供的一些基本 XML 函数,并结合一个简单的实例,重点介绍如何利用 DB2 提供的 XML 函数以视图或查询的形式灵活的实现 XML 文档的构造和发布。同时文中还将介绍利用作者编制的一个工具,根据目标 ...

    matlab 数字信号处理函数

    matlab 数字信号处理函数 matlab实现数字信号处理的一些经典理论 内涵: 滤波器的设计,模拟与数字 采样定律 Z变换与s域映射 卷积原因 截断效应 各种变换 如:DFS DFT IDFT 具体的如下: % 离散信号和系统 % conv_m...

    Linux下自动根据本地DB2数据库系统数据日期,获取两个服务器平台的接口数据

    #Linux下自动根据本地DB2数据库系统数据日期,获取两个服务器...实现DB2数据库异常状态下的脚本运行; #6.增加日志函数,便于清晰跟踪脚本执行情况; #7.tar.gz文件的批量解压; #8.对FTP目标文件夹是否存在进行判断;

    SQL开窗函数的具体实现详解

    开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值,开窗函数可以为每组返回多个值,因为开窗函数所执行聚合计 算的行集组是窗口。在 ISO SQL 规定

    SQL_WITH_AS实现父子递归查询

    sql 2005中用CTE实现递归的很好很易懂很基础的例子讲解。

    sql行转列,与列转行

    sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~

    php网络开发完全手册

    4.2.7 变量检测函数isset与变量释放 4.2.7 函数unset 66 4.2.8 随机函数rand与srand 66 4.3 关于引用的解释 67 4.3.1 对变量的引用 67 4.3.2 对函数的引用 68 4.3.3 引用的释放 68 4.4 小结 69 第5章 PHP中类的应用 ...

    主流数据库行转列实例

    主流数据(ORACLE,DB2)行转列实例,包括2种实现方式,通过case..when和left join..on;大牛补充其他的实现方式。

    汉字转拼音五笔

    汉字转拼音、汉字转五笔、中文转拼音、中文转五笔。自定义函数实现

    数据库比较工具 v3.5

    数据库工具主要实现的功能是: 1、快速的比较两个库之间表、视图、存储过程、函数和触发器的不同,并可以生成SQL脚本,执行SQL脚本就可以完成两个库的同步操作; 2、提供方便快捷的数据库浏览,支持可视化复合条件...

    Java面试笔试题

    1、数据库性能优化有那些措施(ORACLE/SYBASE/DB2/SQLSERVER选一种)2、写一个程序,把字符串倒叙,要求“你好呀”变为“呀好你”(处理中文)3、名次解释(继承、重载、接口)4、JAVA线程实现有那些方法,说明之5、...

    SQL 宝典 [美]Alex Kriegel, Boris M.Trukhnov【著】

    本书始终围绕SQL标准和三大主要RDBMS(Oracle、IBM DB2和Microsoft SQL Server 2008)之间不同的实现而展开,详细介绍这三大供应商与标准之间的区别以及它们的特定实现。除了SQL的基本功能和用途外,本书还说明了SQL...

    数据库课程设计 选修课管理程序设计

    很好 很强大 欢迎指导 很完善的数据库课程设计 选修课管理程序设计,关键词:SQL语言;IBM DB2;数据库设计;学生选课管理系统

    神通数据库-数据库快速入门.pdf

    神通数据库所支持的数据类型包括:字符串类型、位串类型、精确数值类型、布尔型、近似数值类型、 日期类型、时间间隔类型、货币类型、二进制大对象、字符型大对象等。 • 提供功能强大的内置函数 神通数据库系统提供...

Global site tag (gtag.js) - Google Analytics