`

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常用函数详解,进100个常用函数

    DB2常用函数是数据库管理系统DB2中的一些基本函数,用于实现各种数据操作和处理。这些函数可以分为多种类型,包括字符串函数、类型转换函数、日期时间函数等。 字符串函数 字符串函数是DB2中最基本的函数之一,...

    DB2函数大全(学生专用)

    在深入探讨DB2函数之前,我们首先应当理解DB2是什么。DB2是IBM开发的一款关系数据库管理系统(RDBMS),广泛应用于各种规模的企业级环境中。它不仅支持SQL标准,还提供了丰富的内置函数,使得数据处理更加高效、灵活。...

    DB2函数的详细总结

    这里我们将深入探讨几个常用的DB2函数,并详细解释它们的用法。 1. **SUBSTR()函数**: - `SUBSTR(para1,para2)`:此函数用于从字符串`para1`中提取一部分。它从位置`para2`开始截取字符串,位置索引从1开始。例如...

    db2调自定义函数(小例)

    1. **编写源代码**:首先,你需要使用支持的语言(如C、C++或Java)编写函数的实现代码。这段代码通常被包含在一个或多个源文件中。例如,在C语言中,你可以创建一个名为`os_calls.c`的源文件,其中包含了多个函数的...

    DB2函数大全详细解释

    DB2函数大全详细解释 在数据库管理中,DB2提供了丰富的内置函数,用于处理和分析...掌握这些DB2函数对于数据库管理和数据分析至关重要,它们使得SQL查询能够实现更复杂的计算和逻辑,从而提高数据处理的效率和准确性。

    DB2函数大全

    在DB2中,函数是实现特定计算或数据处理的关键工具。本篇文章将深入探讨DB2中的常用函数,帮助用户更好地理解和利用这些功能提升数据库操作效率。 1. **数值函数** - `ABS(x)`: 返回x的绝对值。 - `SQRT(x)`: ...

    DB2常用函数与Oracle比较

    字符串处理也是数据库开发中不可或缺的部分,DB2与Oracle提供的字符串处理函数具有很高的相似性,但也存在一些细微差别。 1. **长度计算** - **Oracle**: ```sql SELECT LENGTH('Hello World') FROM DUAL; ``` ...

    db2中自定义函数文档

    7. **SQL函数体(SQL-function-body)**:这是函数的核心,包含了实现函数逻辑的SQL代码。可以包含条件语句、循环、变量赋值等。 举例来说,创建一个简单的标量函数,如计算两个数的和,可以写成: ```sql CREATE ...

    DB2函数详解

    其中,DB2函数是实现数据处理和查询优化的关键工具之一。本文将深入探讨DB2中的两类重要函数:**聚集函数**和**标量函数**。 #### 一、聚集函数 聚集函数主要用于对一组数据进行计算或汇总,从而得出单一的结果值...

    db2常用函数整理.doc

    DB2 是一款强大的关系型数据库管理系统,其内置了大量的函数,以支持各种数据处理和分析任务。在DB2中,函数的使用是数据库查询语言SQL的重要组成部分。以下是对DB2常用函数的详细介绍: 1. AVG 函数:这个函数用于...

    DB2 函数大全

    "DB2函数大全"这个主题涵盖了许多DB2中用于处理和操作数据的内置函数。这些函数是SQL查询语言的重要组成部分,帮助用户在数据库中进行复杂的计算、比较、转换和其他操作。 在DB2中,函数可以分为多种类型,包括算术...

    db2转换hive的函数列表

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

    IBM DB2 DRIVER DB2驱动(32位)

    **IBM DB2 驱动详解** IBM DB2 驱动是用于连接到IBM DB2数据库的关键组件,尤其在32位...安装和配置好驱动后,可以通过多种编程语言实现与DB2的高效交互。对于更详细的使用和配置指导,可以参考提供的链接或官方文档。

    DB2 SQL 实现行转列,列转行

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

    IBM DB2 DRIVER DB2驱动(64位)

    总的来说,IBM DB2 DRIVER是实现与DB2数据库高效通信的关键组件,对于开发和维护基于DB2的应用程序至关重要。熟悉其安装、配置以及在不同编程语言中的使用方法,将有助于提升开发效率和系统的稳定性。在实际应用中,...

    DB2到GreenPlum/PostgreSQL的转换指南

    当需要将双精度类型的数据转换为整数并进行四舍五入时,DB2与GreenPlum/PostgreSQL都提供了相应的函数,但在语法和实现上可能存在差异。 ##### 2.18.3 将双精度转换为整数(向下取整) 当需要将双精度类型的数据...

    DB2使用经验积累-导入导出-编程-函数-sql优化

    DB2提供了多种工具来实现这一目标,如`db2move`、`db2import`、`db2export`和`LOAD`命令。`db2move`用于数据库级别的迁移,而`db2import`和`db2export`则专注于表级别的操作。`LOAD`命令适用于大量数据的快速加载,...

    DB2中REVERSE函数的实现方法

    然而,DB2的`REVERSE`函数的实现与Oracle和SQL Server有所不同。由于DB2内部并没有预定义的`REVERSE`函数,我们可以自定义一个。下面是一个示例,展示了如何在DB2中创建一个`REVERSE`函数: ```sql CREATE OR ...

    DB2 SQL 数学函数

    在DB2中,SQL提供了丰富的数学函数,帮助用户实现各种数学运算,包括但不限于基本的算术运算、三角函数计算、取整等。这些函数对于数据分析、报表生成等应用场景极为重要。 #### 常用数学函数 ##### ABS函数:求...

    db2 cli 函数说明大全(最新版)

    这些函数是开发人员在使用DB2时不可或缺的基础工具,通过合理利用这些函数,可以高效地实现数据管理和操作任务。需要注意的是,为了更全面地理解和应用CLI函数,建议同时参阅《Call Level Interface Guide and ...

Global site tag (gtag.js) - Google Analytics