必威体育Betway必威体育官网
当前位置:首页 > IT技术

ORCLE

时间:2019-10-05 23:14:27来源:IT技术作者:seo实验室小编阅读:56次「手机版」
 

orcle

sql中,计算2.5的2次方

1、power(2.5,2)=6.5     相同于2.5^2=6.5

2、exp(2)=7.38905609893065 相同于e^2=7.38905609893065  对数

3、ln(2)=0.6931471805599453 相同于e^0.6931471805599453=2  自然对数

4、mod(23,8)=7 相同于23%8取余等于7

5、四舍五入,2.1相当于2,2.6相当于2

round(5555.6666,2.1)=5555.67

round(5555.6666,-2.6)=5600

round(5555.6666)=5556

6、截取:

trunc(5555.66666,2.1)=5555.66

trunc(5555.66666,-2.6)=5500

trunc(5555.033333)=5555

7、求平方根

sqrt(64)=8     相当于8*8=64

8、求绝对数

abs(100)=100

abs(-100)=100

9、求正负值

sign(100)=1

sign(-100)=-1

sign(0)=0

10、向上取整

ceil(3.1)=4

ceil(2.8+1.3)=5

ceil(0)=0

11、向下取整

floor(3.1)=3

floor(2.8+1.3)=4

floor(0)=0

12、三角函数

正弦:sin(x) sin(1.57079)=1

余弦:COS(x) cos(-3.1415927)=-1

正切:TAN(x) tan(20)=2.2371609

双曲正弦:SIGH(x) sin(20)=0.91294525, ,sinh(20)=242582598

双曲余弦:COSH(x) cosh(20)=242582598

双曲正切:TANH(x) tanh(20)=1

反正弦:ASIN(x) asin(0.5)=0.52359878

反余弦:ACOS(x) acos(-1)=3.1415927

反正切:ATAN(x) atan(1)=0.78539816

13、ASCII编码

ascii('A')=65

14、将ASCII编码转为对应的值

chr(54740)=赵,chr(65)='A'

15、合并字符串

CONCAT(c1,c2)合并c1和c2为c1c2

concat('010-','88888888')||'转23'=010-88888888转23

16、处理字符串首字符为大写,其他均小写

INITCAP(c1)

initcap('smith abc aBC')=Smith Abc Abc

17、转换字符串为小写

LOWER(c1)

lower('AaBbCcDd')=aabbccdd

18、转换字符串为大写

UPPER(c1)

upper('AaBbCcDd')=AABBCCDD

19、处理字符串首字符为大写,其他均小写(可排序)

NLS_INITCAP(x[,y])

nls_initcap('ab cde')=Ab Cde

nls_initcap('a c b d e','nls_sort= SCHINESE_PINYIN_M')=A C B D E  转变首位字符为大写,并且进行排序

SCHINESE_PINYIN_M拼音排序

SCHINESE_RADICAL_M部首排序

SCHINESE_STROKE_M笔画排序

20、转换字符串为小写(可排序)

NLS_LOWER(x[,y])

nls_LOWER('Ab cDe')=ab cde

21、转换字符串为大写(可排序)

NLS_UPPER(x[,y])

NLS_UPPER('ab cde')=AB CDE

22、在指定字符串中搜索指定子字符串

1个汉字算1个

INSTR(C1,C2[,I[,J]])

C1    被搜索的字符串

C2    希望搜索的字符串

I     搜索的开始位置,默认为1

J     第J次出现的位置,默认为1

instr('oracle traning','ra',1,2)=9

instr('重庆某软件公司','某',1,1)=3

23、在指定字符串中搜索指定子字符串

1个汉字算2个

INSTRB(C1,C2[,I[,J]])

instrb('重庆某软件公司','某',1,1)=5

24、字符串长度

1个汉字算1

LENGTH(c1)

length('高乾竞')=3

25、字符串长度

1个汉字算2个

LENGTH(c1)

lengthB('高乾竞')=6

length函数返回字符的个数,使用定义是给定的字符集来计算字符的个数

LENGTHB给出该字符串的byte

LENGTHC使用纯unicode

LENGTH2使用UCS2

LENGTH4使用UCS4

26、增长字符串长度到指定长度,不足在左边添加指定字符

LPAD(c1,n[,c2])

lpad('gao',10,'*')=*******gao 增长字符串gao为10位,不足在左边添加*

lpad('gao',2,'*')=go

26、增长字符串长度到指定长度,不足在右边添加指定字符

RPAD(c1,n[,c2])

RPAD('gao',10,'*')=gao******* 增长字符串gao为10位,不足在右边添加*

RPAD('gao',2,'*')=go

27、删除字符串左边的指定字符

LTRIM(c1,[,c2])

LTRIM('   gao qian jing',' ')=LTRIM('   gao qian jing')=gao qian jing

27、删除字符串右边的指定字符

RTRIM(c1,[,c2])

RTRIM('   gao qian jingXXXX','X')=gao qian jing

28、删除字符串左右两边指定字符串

TRIM(c1 from c2)

TRIM('X' from 'XXXgao qian jingXXXX')=gao qian jing

29、替换字符串中指定的子字符串为指定的子字符串

REPLACE(c1,c2[,c3])

replace('he love you','he','i')=i love you

30、字符串参数的语音表示形式

SOUNDEX(c1)

计算语音的算法: 

1.保留字符串首字母,但删除a、e、h、i、o、w、y 

2.将下表中的数字赋给相对应的字母 

(1) 1:b、f、p、v 

(2) 2:c、g、k、q、s、x、z 

(3) 3:d、t 

(4) 4:l 

(5) 5:m、n 

(6) 6:r 

如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个 

只返回前4个字节,不够用0填充 

示例: 

soundex('two'),soundex('too'),soundex('to'),他们的结果都是T000 

soundex('cap'),soundex('cup'),他们的结果都是C100 

soundex('house'),soundex('horse'),他们的结果都分别是H200,H620

31、截取字符串(1个汉字算1位)

SUBSTR(c1,n1[,n2])

substr('13088888888',3,8)=08888888,从第3位往后截取8位

32、截取字符串(1个汉字算2位)

SUBSTRB(c1,n1[,n2])

substrb('我手机13012345678',4,11)=机13012345

substrb('我手机13012345678',3,11)=手机1301234

33、根据指定字符串替代指定字符串中的指定内容(1个汉字算1位)

TRANSLATE(c1,c2,c3)

c1   希望被替换的字符或变量 

c2   查询原始的字符集

c3   替换新的字符集,将c2对应顺序字符,替换为c3对应顺序字符

TRANSLATE('he love you','he','i')=i love you,,,1北京人,

TRANSLATE('重庆的人','重庆的','上海男')=上海男人 c1和c2重复的部分为‘重庆的’,并且出现在1,2,3位置

TRANSLATE('重庆的人','重庆的重庆','北京男士们')=北京男人 c1和c2重复的部分还是‘重庆的’,并且出现在1,2,3位置

TRANSLATE('重庆的人','重庆的重庆','1北京男士们')=1北京人 c1和c2重复的部分还是‘重庆的’,并且出现在1,2,3位置

TRANSLATE('重庆的人','1重庆的重庆','北京男士们')=京男士人 c1和c2重复的部分还是‘重庆的’,并且出现在2,3,4位置

34、获取当前日期

sysdate=2017-12-8

35、在当前时间基础上增加3个月

add_months(sysdate,3)=2018-3-8

36、获取当前月的最后一天

last_day(sysdate)=2017-12-31

37、两个日期之间的月份数

months_between(d1,d2)

sysdate=2008-11-5

months_between(sysdate,to_date('2006-01-01','YYYY-MM-DD'))=34.16

months_between(sysdate,to_date('2016-01-01','YYYY-MM-DD'))=-85.84

38、给出时间dt1在c1时区对应c2时区的日期和时间(不同时区的时间)

NEW_TIME(dt1,c1,c2)

大西洋标准时间:AST或ADT   

阿拉斯加_夏威夷时间:HST或HDT   

英国夏令时:BST或BDT   

美国山区时间:MST或MDT   

美国中央时区:CST或CDT   

新大陆标准时间:NST   

美国东部时间:EST或EDT   

太平洋标准时间:PST或PDT   

格林威治标准时间:GMT   

Yukou标准时间:YST或YDT 

to_char(sysdate,'yyyy.mm.dd hh24:mi:ss')=2017.12.8 11:10:55

to_char(new_time(sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss')=2017.12.8 18:10:55

39、给出日期d1按期间(参数c1)四舍五入后的期间的第一天日期,根据日期进行四舍五入

round(d1[,c1])

最近0点日期: 取消参数c1或j

最近的星期日:day或dy或d

最近月初日期:month或mon或mm或rm 

最近季日期:q

最近年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)  

最近世纪初日期:cc或scc

round(sysdate) 最近0点日期,

round(sysdate,'day') 最近星期日,

round(sysdate,'month') 最近月初,

round(sysdate,'q') 最近季初日期, 

round(sysdate,'year') 最近年初日期

40、返回指定日期节点所对应的时间

trunc(d1[,c1])

trunc(sysdate) 今天日期,

trunc(sysdate,'day') 本周星期日,

trunc(sysdate,'month') 本月初,

trunc(sysdate,'q') 本季初日期, 

trunc(sysdate,'year') 本年初日期

41、给指定时间节点的日期,返回下周对应时间

next_day(d1[,c1])

next_day(sysdate,'星期一') 下周星期一,

next_day(sysdate,'星期二') 下周星期二,

next_day(sysdate,'星期三') 下周星期三,

next_day(sysdate,'星期四') 下周星期四,

next_day(sysdate,'星期五') 下周星期五,

next_day(sysdate,'星期六') 下周星期六,

next_day(sysdate,'星期日') 下周星期日

42、返回指定时间中的指定部分

extract(c1 from d1)

extract(hour from timestamp '2001-2-16 2:38:40 ' ) 小时, 返回小时

extract(minute from timestamp '2001-2-16 2:38:40 ' ) 分钟 返回分钟数

extract(second from timestamp '2001-2-16 2:38:40 ' ) 秒 返回秒数

extract(DAY from timestamp '2001-2-16 2:38:40 ' ) 日 返回对应天数

extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) 月 返回对应月数

extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) 年 返回对应年数

43、获取会话中的日期和时间

localtimestamp=14-11月-08 12.35.37.453000 上午

44、已timestamp格式获取当前时间

current_timestamp=14-11月-08 12.37.34.609000 上午 +08:00

45、获取当前日期

current_date=2008-11-14

46、获取当前时区

dbtimezone=:+00:00

47、获取当前会话时区

sessionTIMEZONE=+08:00

48、变动日期

Interval c1 set1

trunc(sysdate)+(interval '1' second), --加1秒(1/24/60/60)

trunc(sysdate)+(interval '1' minute), --加1分钟(1/24/60)

trunc(sysdate)+(interval '1' hour), --加1小时(1/24)

trunc(sysdate)+(INTERVAL '1' DAY),   --加1天(1)

trunc(sysdate)+(INTERVAL '1' MONTH), --加1月

trunc(sysdate)+(INTERVAL '1' YEAR), --加1年

trunc(sysdate)+(interval '01:02:03' hour to second), --加指定小时到秒

trunc(sysdate)+(interval '01:02' minute to second), --加指定分钟到秒

trunc(sysdate)+(interval '01:02' hour to minute), --加指定小时到分钟

trunc(sysdate)+(interval '2 01:02' day to minute) --加指定天数到分钟

49、将varchar2格式转化为rowid值

chartorowid(c1)

chartorowid('AAAADeAABAAAAZSAAA')

50、将rowid值转化为varchar2格式

ROWIDTOCHAR(rowid)

51、字符串转化字符集

将源字符串c1 从一个语言字符集set2转换到另一个目的set1字符集

CONVERT(c1,set1,set2)

convert('strutz','we8hp','f7dec')=strutz

52、将16进制数转换为2进制数

HEXTORAW(c1)

HEXTORAW('A123')

53、将2进制数转换为16进制

RAWTOHEX(c1)

RAWTOHEX('010100')

54、将日期或数据类型转换为char类型

TO_CHAR(x[[,c2],C3])

x是一个date或number数据类型。

c2为格式参数

c3为NLS设置参数

如果x为日期nlsparm=NLS_DATE_LANGUAGE 控制返回的月份和日份所使用的语言。

如果x为数字nlsparm=NLS_NUMERIC_CHARACTERS 用来指定小数位和千分位的分隔符,以及货币符号。

NLS_NUMERIC_CHARACTERS ="dg", NLS_CURRENCY="string"

to_char(1210.73, '9999.9') 返回 '1210.7' 

to_char(1210.73, '9,999.99') 返回 '1,210.73' 

to_char(1210.73, '$9,999.00') 返回 '$1,210.73' 

to_char(21, '000099') 返回 '000021' 

to_char(852,'xxxx') 返回' 354'

to_char(sysdate,'d') 每周第几天 

to_char(sysdate,'dd') 每月第几天 

to_char(sysdate,'ddd') 每年第几天 

to_char(sysdate,'ww') 每年第几周 

to_char(sysdate,'mm') 每年第几月 

to_char(sysdate,'q') 每年第几季 

to_char(sysdate,'yyyy') 年 

to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American')=monday

55、将字符串格式转换为日期格式

TO_DATE(X[,c2[,c3]])

to_date('199912','yyyymm'),

to_date('2000.05.20','yyyy.mm.dd'),

56、将字符串格式转换为数据格式

TO_NUMBER(X[[,c2],c3])

TO_NUMBER('199912')

TO_NUMBER('450.05')

57、将字符串中的半角转化为全角

TO_MULTI_BYTE(c1)

to_multi_byte('高A')=高A

58、将字符串中的全角转换为半角

to_single_byte(c1)

to_single_byte('高A')=高A

54、返回字符集名称参应id值

nls_charset_id(c1)

nls_charset_id('zhs16gbk')=852

55、返回字符集名称参应id值

nls_charset_name(n1)

nls_charset_name(852)=zhs16gbk

56、统计列平均数

AVG([distinct|all]x)

avg(sal)

57、统计列值之和

SUM([distinct|all]x)

SUM(sal)

58、统计数据表选中行x列的标准误差

STDDEV([distinct|all]x)

STDDEV(distinct sal)=3142.69366257674

STDDEV(all sal)=2565.99863039714

STDDEV(sal)=2565.99863039714

59、统计数据表选中行x列的方差

VARIANCE([distinct|all]x)

VARIANCE(distinct sal)=9876523.4568

VARIANCE(all sal)=6584348.9712

VARIANCE(sal)=6584348.9712

60、统计数据表选中行x列的合计值

count(*|[distinct|all]x)

count(*)=5

count(xm)=4

count(all xm)=4

count(distinct sal)=3

count(all sal)=5

count(sal)=5

61、列中最大值

MAX([distinct|all]x)

MAX(distinct sal)=5555.55

MAX(xm)=zhu

62、列中最小值

MIN([distinct|all]x)

MIN(distinct sal)=0

MIN(xm)=gao

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读