oracle学习(函数)

oracle学习(函数)  

2008-03-04 15:51:50|  分类: 学习笔记 |  标签: |字号大中小 订阅

Oracle字符型函数

Ascii(x)返回字符XASCII码值

Char(x)返回ASCIIX对应的字符

Concatx,y)将Y附在X上返回附加后的结果(可以将XY换成字段,如果XY为非字符型字段,会怎动转为字符型。不需另外转换)

Instr(x,findstr,strar,occurrence)X内查找FINDSTR的内容。Start为起始位置,occurrence为第几次出现的。

Length(x)测字符串的长

Lower(x)X变为小写字符

Lpad(x,width,padstring)使用空格补齐字符串X的左边使字符串的宽度为width的宽度。如果指定PADSTRING则用指定的PADSTRING去填补。

Ltrim(x,[trimstring])删除X左边的字符,可以使用trimstring来指定要删除的字符,如果没指定默认是删除左面的空格。

Nanvl(x,value)如果X不是数字则返回VALUE如果是数字则返回X

Nvl(x,value)如果X为空返回X,否则返回value;

Nvl2(x,value1,value2)如果X不为空返回VALUE1否则返回values2

Replace(x,serch_string,replace_string)X中查找serch_string 如果找到用replace_string 替换

Rpad(x,width,padstring)类似LPAD不同的是右面操作

Rtrim(x,[trimstring])Ltrim类似不同的是右面操作

Soundex(x)返回字符串X的音标

Substr(x,start,length)在字符串X中截取以X开始总长为length的子串。

Trim([trimchar],x)删除字符串两端的trimchar字符,如果不指定则删除两端的空格

Upper(x)X转为大写字母

 

 

 

Oracle 数学函数

 

Abs(x)返回X的绝对值

Acos(x)返回X的反余弦值

Asin(x)返回X的反正弦值

Atan(x)返回X的反正切值

Atans(x,y)返回XY的正切值

Bitand(x,y)返回XY的二进制结果

Cos(x)返回x的余弦,其中X是弥度表示的角度

Chsh(x)返回x的双曲余弦值

Coil(x)返回大于或等于X的最小整数

Exp(x)返回eX次幂,E等于2.7..

Floor(x)返回小于或等于X的最大整数

Log(x,y)返回底为xy的对数值

Ln(x)返回X的自然对数值

Mod(x,y)返回x除与y的余数

Power(x,y)返回X的方次方

Round(x,[y])取整X值,如果不指定Y则取整到整数,如果指定Y,则取整到Y指定的小数点位数。如果Y为负数,则取整到小数点左边的位数

Sign(x)如果X为正数返回1,负数返回-1,如果为0则返回0.

Sin(x)返回X的正弦值

Sinh(x)返回X的交叉曲线值

Sqrt(x)返回X的平方根

Tan(x)返回X的正切值

Tanh(x)返回X的双曲正切值

Trunk(x,[y])截断X,如果不指定Y则截断整数,如果指定Y则截断到Y指定的小数位。如果Y是负数,则截断小数点左端的位数

 

Oracle 转换函数

Asciistr(x)X转换成ASCII字符串,X可以是任意字符集中的字符串

Bin_to_num(x)X转换成二进制数,返回值是数字

Cast(x as type_name)X从一种类型转变为type_name指定的类型

Chartorowid(x)x变为rowid

Compose(x)X转换成unicode 字符串

Convert(x,source_char_set,dest_char_set)Xsource_char_set源标识字符集转换成dest_char_set目标标识字符集

CONVERT('GroB','US7ASCII','WE8HP')

Decode(x,search,result,default)比较x,serch如果相等返回result否则返回default.

select decode(rtrim(bookname),'d"fd"',bookname,'udbyq') from zhengyitable;

decompose(x)X转换成UNICODE字符串

hextoraw(x)把包含十六进制的字符转换成二进制的数字。结果返回raw数字

numtodsinterval(x)把数字X转变成interval_day_second类型

numtoyminterval(x)把数字X转换成interval_year_month类型

rowtohex(x)把二进制数据X转变成包含了等价十六进制数字的nvarchar2字符

nvarchar2用于存贮国际字符集的数据

rowidtochar(x)rowid类型X转变为varchar2字符

rowidtonchar(x)rowid类型x转为nvarchar2字符

to_binary_double(x)x转变为binary_double.

to_binary_float(x)x转变为binary_float.

To_char(x,[format])x转变为char2字符,可提供一个可选择的字符格式format.

To_clob(x)X转变为一个字符大对像

To_date(x,[format])x转变成日期

To_dsinterval(x)把字符X转变成interval_day_to_secound类型

To_multi_byte(x)X中的单字节转变为多字节

To_nchar(x)x转变为nvarchar2类型

To_nclob(x)把经转变成nclob类型

To_number(x,[format])X变为number型。可以用格式表达

To_single_byte(x)把多字节变为单字节字符

To_timestamp(x)把字符串X转变成timestamp类型

To_timestarmp_tz(x)把字符串X转变为timestamp_with_time_zone

To_yminterval(x)把字符串X转变为interval_year_to_month

Translate(x,from_string,to_string)把出现在X中所有的from_string替换成to_string.

Unistr(x)X中的字符转变为nchar字符集。

 

正则表达式函数

正则表达式 10G中新增的功能

常用符号

*匹配任意多个字符

?匹配一个任意字符

^字符串的开始

$字符串的结束

X|y匹配xy

[]匹配方括号中任意的字符

{m}允许匹配的次数

{m,n}最少匹配M次,最多匹配N

1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;
  2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc
  ;但不可以匹配“ancc,az可以写成[a-z],09可以写成[0-9];
  3、数量限定符号,表示匹配次数(或者叫做长度)的符号:
  包括:“*”——0次或者多次
  “+”——1次或者多次
  “?”——0次或者1
  “{n}”——匹配n次,n为整数
  “{n,m}”——匹配从nm之间的某个数的次数;nm都是整数;
  “{n,}”——匹配n到无穷次之间任意次数;
  “{,m}”——匹配0m之间任意次数;
  他们放到匹配格式的后面:
  例如:
  电话号码:0248482048202484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)
  都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} \-? [0-9]{7,8}
  注意:“\”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9]
  所以它需要转义字符“\”进行转义才可使用;
  4、“^”为否符号,表示不想匹配的符号,例如:[^z][a-z]+可以匹配所有除“z”开头的以外的所有字
  符串(长度大于2,因为“+”表示大于等于1的次数,从第二位开始都是小写英文字符);
  如果^放到[]的外边则表示以[]开头的字符串;^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符
  串;
  5、“|”或运算符,例如:a[n|bc|cb]c可以匹配“abcc,anc,acbc”;
  6、“$”以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;
  7、一些简单表示方法:
  \d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],就是空格字符包括tab
  ,空格等等;\S表示[^\t\n\r\f],就是非空格字符;
  8、常用的匹配:
  匹配中文字符:“[\u4e00-\u9fa5]”;
  匹配双字节字符(包括汉字在内):“[^\x00-\xff]”;
  匹配空行的正则表达式:“\n[\s| ]*\r”;
  匹配HTML标记的正则表达式:“/<(.*)>.*<\/\1>|<(.*) \/>/”;
  匹配首尾空格的正则表达式:“(^\s*)|(\s*$)”;
  匹配非负整数(正整数 + 0):“^\d+$”;
  匹配正整数:“^[0-9]*[1-9][0-9]*$”;
  匹配非正整数(负整数 + 0):“^((-\d+)|(0+))$”;
  匹配负整数:“^-[0-9]*[1-9][0-9]*$”;
  匹配整数:“^-?\d+$”;
  匹配非负浮点数(正浮点数 + 0):“^\d+(\.\d+)?$
  匹配正浮点数:“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*
  ))$”;
  ^((-\d+(\.\d+)?)|(0+(\.0+)?))$//匹配非正浮点数(负浮点数 + 0
  ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$//匹配
  负浮点数
  匹配浮点数:“^(-?\d+)(\.\d+)?$”;
  匹配由数字、26个英文字母或者下划线组成的字符串:“^\w+$”;
  匹配email地址:“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”;
  匹配url:“^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$

 

合计函数

Avg(x)求平均值

Count(x)统计数量

Max(x)最大值

Min(x)最小值

Median(x)中间值

Stddev(x)标准差

select   stdev(submoney)  
  from  
  (  
  select     b.country,sum(c.unitprice*c.quantity)   submoney  
  from   orders   a   inner   join   customers     b   on   a.customerid=b.customerid  
  inner   join   [order   details]   c   on   a.orderid=c.orderid  
  group   by   b.country)   x

 

sum(x)汇总

variance(x)方差

 

分组技术

合计函数一般都和分组order by 联合使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值