达梦数据库常用函数之二

1.ASCII(char):返回char对应的ASCII的编码。

select ASCII('B');

2. BIT_LENGTH(char):返回char的位长度。

3.CHAR(n)/CHR(n):返回数值n对应的字符,与ASCII()函数相反。

select char(97);

4.CHAR_LENGTH(char) /CHARACTER_LENGTH(char) :返回字符串的长度

select char_length('qqq ');

注:空字符也有长度。

 5.CONCAT(char1,char2,char3...):返回多个字符串连接起来的字符,与||相同。

select concat('达梦','数据库');/select '达梦'||'数据库';

 6.DIFFERENCE(char1,char2):比较两个字符串的 SOUNDEX 值之间的差异,范围为040表示SOUNDEX()值之间的相似性很弱或没有相似性; 4表示强烈相似或相同的SOUNDEX()值。 

7.INITCAP(char) :将字符串中每个单词的首字母大写。

select initcap('hello world');

 8.INS(char1,begin,n,char2):删除在字符串 char1 中以 begin 参数所指位置开始的 n 个字符, 再把 char2 插入到char1串的begin所指位置。

 select ins('abcderg',1,3,'aaa');

 9.INSERT(char1,n1,n2,char2) / INSSTR(char1,n1,n2,char2) :将字符串char1从n1的位置开始删除n2个字符,并将char2 插入到 char1 中n1的位置。

select insert('I am a girl',8,11,'boy');

10.INSTR/INSTRB(char1,char2,n,m):从n位置查找char2在char1第m次出现的位置,n和m的缺省值是1,n是负数时,从char1的最右边开始数起。

select instr('interesting','in',1,2);

11.LCASE/LOWER(char1):将char1的所有字母改为小写。

 select LCASE('ABcEf');

12.LEFT / LEFTSTR(char,n):返回char从左数起n个字符串。

 select left('varchar',3);

13.LEN(char):返回char的长度,不包括尾部的空字符串。

select len('hello world  ');

14.LENGTH(char):返回char的长度,包含尾部的空字符串。

select length('hello world  ');

15.OCTET_LENGTH(char):返回char的长度,以字节为单位,中文字符占2个字节。

SELECT OCTET_LENGTH('大家好');

 

16.LOCATE(char1,char2,n):从n位置开始查找char1在char2的首次出现的位置,n缺省或者是负数,都是从char2的最左边开始算起。

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

SELECT instr('The manager is a man','man', 1,1);

17. LPAD(char1,length,char2):在char1的左边,加入char2,直到长度=length,如果长度小于本身char1的长度,则返回char1前几个字符串。

select LPAD('gril',11,'I am a ');

18.LTRIM(char,set):将char有set的字符串删掉。

select LTRIM('wogirl','wo');

19. POSITION(char1 IN char2) / POSITION(char1, char2):返回在 char2 串中第一次出现的 char1 的位置,如果 char1 是一个零长度的 字符串,POSITION返回1,如果 char2中char1没有出现,则返回0。

SELECT  POSITION('数' IN '达梦数据库');

 20.REPEAT(char,n) / REPEATSTR(char,n):重复n次char字符串。

select repeat('hi ',2);

21.REPLACE(str1,str2,str3):从str1找出str2的字符串,用str3代替,如果str3为空,那么就是删除str1中str2字符串。

select replace('I like apples and pears.',' and pears');

 

22.REPLICATE(char,n):复制char字符串n次。

select replicate('important! ',3);

23.REVERSE(char):将char反顺序输出。

select reverse('abcd');

24. RIGHT(char,n) / RIGHTSTR(char,n) :返回字符串最右边n个字符组成的字符串。

select right('computer',3);

25.RPAD(char1,length,char2):在char1的右边,加入char2,直到长度=length,如果长度小于本身char1的长度,则返回char1后几个字符串。

select RPAD('I am a ',12,'girl.');

 26.RTRIM(char1,set):将char1含有set的字符串删除,当遇到不在set中的第一 个字符时结果被返回。set缺省为空格。 

SELECT RTRIM('我们的计算机','我计算机');

 27.SPACE(n):返回一个包含n个空格的字符串。

select '我们的'||space(2)||'计算机';

28.STRPOSDEC(char,n):把字符串char中倒数第n个字符减n,n缺省值为1。 

select strposdec('helloo');

select strposdec('abcd',2);

 29.STRPOSINC(char,n):把字符串char中倒数第n个字符家加n,n缺省值为1。

30.STUFF(char1,begin,n,char2):删除在字符串 char1 中以 begin 参数所指位置开始的 n 个字符,再把 char2 插入到char1的begin所指位置。 

select stuff('aaaaa',3,2,'bcd');

31.SUBSTR(char[,m[,n]]) / SUBSTRING(char[ from m [ for n ]]) :返回char中从字符位置m开始的n个字符。若m为0,则把m就当作1对待。 若m为正数,则返回的字符串是从左边到右边计算的;反之,返回的字符是从char的结尾 向左边进行计算的。如果没有给出n,则返回char中从字符位置m开始的后续子串。如果 n小于0,则返回NULL。如果m和n都没有给出,返回char。函数以字符作为计算单位, 一个西文字符和一个汉字都作为一个字符计算。

 SELECT SUBSTR('我们的计算机',4,3);

32.SUBSTRB(string,m,n) :返回char中从第m字节位置开始的n个字节长度的字符串。若m为0,则 m就 当作 1 对待。若 m 为正数,则返回的字符串是从左边到右边计算的;若 m 为负数,返回的 字符是从char的结尾向左边进行计算的。若m大于字符串的长度,则返回空串。如果没有 n,则缺省的长度为整个字符串的长度。如果n小于1,则返回NULL。

SELECT SUBSTRB('达梦数据库有限公司',4,15);

33.TO_CHAR(character)::将 VARCHAR、CLOB、TEXT 类型的数据转化为 VARCHAR 类型输出。VARCHAR 类型的长度不能超过32767个字符,CLOB、TEXT类型的长度不能超过32766个字符。

34.TRANSLATE(str1,str2,str3):从str1中找到str2,用str3里的字符代替。

SELECT TRANSLATE('我们的计算机', '我们的', '数据库or');

35. TRIM([LEADING|TRAILING|BOTH] [char1] FROM char2]) :TRIM 从 char2 的首端(LEADING)或末端(TRAILING)或两端(BOTH)删除 char1 字符,如果任何一个变量是 NULL,则返回 NULL。默认的修剪方向为 BOTH,默认的修剪字符为空格。

select trim('  hello');

36.UCASE/UPPER(char):将char字符串的所有字母改为大写。

select upper('12hello');

 

37.OVERLAY(char1 PLACING char2 FROM m  FOR n )  :将char2从char1的m位置以n个字符开始插入,默认n是char2的长度。

select overlay('hello ' placing 'world' from 7);

 38.TEXT_EQUAL(n1,n2):返回 n1,n2 的比较结果,完全相等,返回 1;否则返回 0。n1,n2 的类型为 CLOB、TEXT或LONGVARCHAR。

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

 39.BLOB_EQUAL(n1,n2):返回 n1,n2 两个数的比较结果,完全相等,返回 1;否则返回 0。n1,n2 的 类型为BLOB、IMAGE或LONGVARBINARY。

SELECT BLOB_EQUAL(0xFFFEE, 0xFFFEE); 

 40.NLSSORT(str1 [,nls_sort=str2]):返回对汉字排序的编码。当只有 str1 一个参数时,与 RAWTOHEX 类似,返回 16 进制字符串。str2 决定按哪种方式排序,可以选择 schinese_pinyin_m、 schinese_stroke_m、schinese_radical_m。分别表示支持对汉字按拼音、笔画、部 首排序。

41.GREATEST(char 1, char 2, char 3):求char 1、char 2和char 3中最大的字符串。 

SELECT GREATEST('abb','abd', 'abc');

42.GREAT (char 1, char 2):求char 1、char 2中最大的字符串。 

43.TO_SINGLE_BYTE( STR IN VARCHAR) return RVAL VARCHAR:将多字节形式的字符(串)转换为对应的单字节形式。

44. TO_MULTI_BYPE( STR IN VARCHAR) return RVAL VARCHAR:将单字节形式的字符(串)转换为对应的多字节形式 (不同的字符集转换结果 不同)。

45.EMPTY_BLOB return RVAL blob:初始化blob字段,返回长度为0的blob数据。

DROP TABLE TT; 
CREATE TABLE TT(C1 BLOB, C2 INT); 
INSERT INTO TT VALUES(EMPTY_BLOB(),1); 
INSERT INTO TT VALUES(NULL,2); 
INSERT INTO TT VALUES(0X123,3); 
SELECT LENGTHB(C1) FROM TT;

 46.UNISTR (char):将字符串char中,ascii码(‘ \XXXX’4个16进制字符格式)转成本地字符。 对于其他字符保持不变。 

47.ISNULL(char) :判断表达式是否为NULL,为NULL返回1,否则返回0。

 

 

 

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值