ITPub博客

首页 > 数据库 > 国内数据库 > GBase8s常用函数测试方法

GBase8s常用函数测试方法

原创 国内数据库 作者:DMD_202007 时间:2020-09-21 18:29:53 0 删除 编辑

GBase 8s 常用函数测试方法

-- '------------------ 函数--------------------------------' 

-- 创建表

CREATE TABLE FUNC_T1 (C1 INT,C2 VARCHAR2(10));

INSERT INTO FUNC_T1 VALUES(10,'a');

INSERT INTO FUNC_T1 VALUES(10,'A');

INSERT INTO FUNC_T1 VALUES(20,'b');

INSERT INTO FUNC_T1 VALUES(30,'c');

INSERT INTO FUNC_T1 VALUES(40,'d');

COMMIT;

-- 测试Count/Avg/Min/Max/Sum集函数的支持

select count(c1) cnt,Avg(c1) avg1,Min(c1) min1,max(c1) max1,sum(c1) sum1 from  FUNC_T1;

 

 

   

-- 求弧度1.0对应的角度值:

SELECT DEGREES(1.0);   

-- 求e的4次幂的值:

SELECT EXP(4) "e to the 4th power";

-- 求1.2、3.4、2.1中的最大浮点数:

SELECT GREATEST(1.2,3.4,2.1);

-- 求1.2、3.4、2.1中的最小浮点数:

SELECT LEAST(1.2,3.4,2.1);  

-- 创建测试表并插入数据:

create table test(id int,name char(10),age int);

insert into test values(1,'aa',23);

insert into test values(2,'bb',34);

insert into test values(3,'cc',12);

insert into test values(4,'dd',65);

-- 求age列除以10的余数:

Select id, mod(age,10) from test;  

   

-- 求3的2次幂:

SELECT POWER(3,2) "Raised";    

-- 返回一个0 到1 之间的随机浮点数:

SELECT RAND();         

SELECT ROUND(15.20); 

   

-- 求1的双曲正弦值:

SELECT SINH(1);    

SELECT TANH(0);    

SELECT TO_CHAR('01110' + 1);   

-- 清除测试环境:

DROP TABLE TEST;

--Lower/Upper 字符串函数;Lower:返回字符串中,所有字母改为下写 Upper:返回字符串中,所有字母改为大写

select Lower(c2),Upper(c2) from  FUNC_T1   where c1=10;

--Lpad/rpad

--Lpad :在字符串char1的左边,依次加入char2中的字符,直到总长度达到length,返回增加后的字符串。

--rpad :返回值为字符串char1右边增加char2,总长度达到length的字符串,length为正整数。

select Lpad(c2,10,' 中国人民'),rpad(c2,10,'中国人民') from  FUNC_T1   where c1=20;

--Concat/charindex, 其中达梦charindex不支持,等价的替代函数INSTRB:

--Concat :返回多个字符串顺序联结成的一个字符串,该函数等价于连接符||

--INSTRB :在一个字符串中搜索指定的字符,返回发现指定的字符的位置

select Concat(c2,' 中国人民',c1),INSTRB( 'DMDBMS7.0','7.0')  from  FUNC_T1   where c1=20;

--LTRIM/RTRIM 字符函数

--LTRIM 删除字符串char左边起,出现在set中的任何字符,当遇到不在set中的第一个字符时结果被返回。

--RTRIM 删除字符串char1右边起出现的set中的任何字符,当遇到不在set中的第一个字符时结果被返回。set缺省为空格。

SELECT LTRIM('xyyxxxXxyLAST WORD', 'xy'),RTRIM(' 我们的计算机','我计算机')  from  dual;

--LEFT/RIGHT/SUBSTRING

--left :返回字符串最左边的n个字符组成的字符串

--right :返回字符串最右边的n个字符组成的字符串

--substring :返回char中从字符位置m开始的n个字符

SELECT LEFT(' 我们的计算机',3),right('我们的计算机',3),SUBSTRING('我们的计算机',3,1)  from  dual;

--REPLACE/REPLICATE

--REPLACE :STR为CHAR、CLOB和TEXT类型,search和replacement为字符串类型。在字符串STR中找到字符串search,替换成replacement。

--REPLICATE 把字符串char自己复制times份。

SELECT REPLACE( ' 我的地址','地址', '地点'), REPLICATE('我的地址',3) from  dual;

---CAST/CONVERT

--CAST :将参数value转换为type类型返回

--CONVERT 将参数value转换为type类型返回。其类型转换相容矩阵与函数CAST()的相同。

SELECT CAST(curdate as timestamp),CONVERT(varchar,curdate) from  dual;

-- 测试字符串函数BIT_LENGTH、CHAR、CHAR_LENGTH、DIFFERENCE、INSERT、LCASE、LEFT、LEN、LOCATE、POSITION、REPEAT、REPLICATE、REVERSE、RIGHT、SPACE、STRPOSDEC(char)、STRPOSDEC(char,pos)、STRPOSINC(char)、STRPOSINC(char,pos)、STUFF、REGEXP_COUNT、REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、REGEXP_REPLACE、OVERLAY、text_equal、BLOB_EQU、NLSSORT、WM_CONCAT等

SELECT BIT_LENGTH('ab');

SELECT   CHAR(66),CHAR(67),CHAR(68) , CHAR(54992);

SELECT CHAR_LENGTH(' 我们');

SELECT  DIFFERENCE('she', 'he');

-- 以整数返回两个字符串的 SOUNDEX 值之差

SELECT  INSERT('That is a cake',2,3, 'his') ;

-- 将字符串 char1 从 n1 的位置开始删除 n2 个字符,并将char2 插入到 char1 中 n1 的位置

SELECT LCASE('ABC');

SELECT  LEFT ('computer science',10);

SELECT LEN ('hi, 你好  ');

-- 说明:□表示空格字符

SELECT LOCATE('man', 'The manager is a man', 10);

SELECT  POSITION(' 数' IN '通用数据库');

 SELECT REPEAT ('Hello ',3);

SELECT  REPLICATE('aaa',3);

SELECT REVERSE('abcd');

select right('asdqwezxc',3);

SELECT CONCAT(CONCAT('Hello',SPACE(3)), 'world');

SELECT STRPOSDEC('hello');

SELECT STRPOSDEC('hello',3);

SELECT STRPOSINC ('hello');

SELECT STRPOSINC ('hello',3); 

SELECT STUFF('ABCDEFG',1,3, 'OOO');

select regexp_count('a 你好ac','a') from dual; 

select 1 from dual where regexp_like('a 超越aa 自我aac','(a+)');

select regexp_instr('a 你好aaac','aa') from dual; 

select regexp_substr('a 超越aa 自我aac','(a+)',2) from dual;

select regexp_replace('a 你好aaac','aa','bb') from dual;

SELECT OVERLAY('txxxxas' PLACING 'hom' FROM 2 FOR 4); 

select text_equal( 'a ',  'b ');

select blob_equal(0xFFFEE, 0xFFFEE);

select nlssort('abc') from dual;

-- 创建测试表并插入数据:

create table TFun06(id  number,val varchar2(20),num number);

insert into TFun06 (ID, VAL, NUM) values (10, 'abc', 1);

insert into TFun06 (ID, VAL, NUM) values (10, 'abc', 2);

insert into TFun06 (ID, VAL, NUM) values (10, 'def', 3);

insert into TFun06 (ID, VAL, NUM) values (10, 'def', 4);

SELECT ID, WM_CONCAT(VAL) AS ENAMES FROM TFun06 GROUP BY ID ORDER BY ID;

-- 清除测试环境:

drop table TFun06;

---Dateadd/datediff

---Dateadd :返回跨两个指定日期的日期和时间边界数

---datediff :返回跨两个指定日期的日期和时间边界数

select DATEADD(day,20,curdate),DATEDIFF(day,'2019-05-30',curdate)from dual;

----Year/month/day 日期函数的

--Year :获取当前日期的年份

--month :获取当前日期的月份

--day :获取当前日期的天

select Year(curdate),month(curdate),day(curdate) from dual;

-- 测试日期时间函数:ADD_DAYS、ADD_MONTHS、ADD_WEEKS、CURDATE、CURTIME、CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP、DATEADD、DATEDIFF/BIGDATEDIFF、DAYNAME、DAYOFMONTH、GETDATE 、WEEK、TO_DATE/TO_TIMESTAMP、等

SELECT ADD_DAYS( DATE '2000-01-12',1);

SELECT ADD_MONTHS(DATE '2000-01-31',1);

SELECT ADD_WEEKS( DATE '2000-01-12',1);

SELECT   CURDATE();

SELECT  CURTIME();

SELECT DATEDIFF(QQ, '2003-06-01', DATE '2002-01-01');

SELECT DAYNAME(DATE '2012-01-01');

SELECT DAYOFMONTH('2003-01-03');

SELECT DAYOFWEEK('2003-01-01');

SELECT DAYOFYEAR('2003-03-03');

SELECT GETDATE();

SELECT MONTHS_BETWEEN(DATE '1995-02-28', DATE '1995-01-31') "Months";

SELECT NEXT_DAY(DATE '2001-08-02', 'MONDAY');

SELECT TO_DATE('2003-06-19 08:40:36','YYYY-MM-DD HH:MI:SS');

SELECT WEEK(DATE '2003-02-10');

SELECT YEAR(DATE '2001-05-12');

-- 测试空值判断函数:COALESCE、IFNULL、NVL、NULL_EQU、ISNULL等

SELECT COALESCE(NULL,TIME '12:00:00',TIME '11:00:00');

SELECT IFNULL(NULL,3);

Select ISNULL(1,3);

Select nvl(1,4);

select null_equ(1,1);

-- 测试其它常用函数DECODE、ISDATE、TO_CHAR、TO_NUMBER等

SELECT DECODE(1, 1, 'A', 2, 'B'); 

SELECT ISDATE('2012-10-9');

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD');

   

-- 无格式转换:

SELECT TO_NUMBER('-123.4');   

--Random 包随机函数的调用

--DM 支持ORACLE的DBMS_RANDOM系统包。

SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_RANDOM');

select DBMS_RANDOM.Random from dual;

exit

 

 

官网:

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980677/viewspace-2722996/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-31

  • 博文量
    36
  • 访问量
    31946