欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQLPLUS的几个常用函数

程序员文章站 2022-06-29 12:54:35
...

SQL*PLUS常用函数

DUAL:该表属于SYS方案,但所有用户都可以使用DUAL名称直接访问它。用SELECT计算常量表达式、伪列等值时经常使用该表,因为它只返回一行数据,而使用其他表时可能返回多个数据行。另外这个表还主要用来满足SELECT命令的语法要求,因为Oracle中要求SELECT命令必须包含FROM子句。

字符串函数

函数名 功能
CONCAT( string1, string2) 连接两个字符串
LENGTH( string) 返回字符串string 的长度
LOWER( string) 将给定字符串string的全部字母变成小写
UPPER( string) 将给定字符串string的全部字母变成大写
INITCAP(string) 将给定字符串string的首字母变成大写,其余字母不变
INSTR( string, value) 查询字符value在字符串string 中出现的位置
IPAD( string, length[, padding]) 在string左侧填充padding指定的字符串直到达到length指定的长度,若未指定padding,则默认为用空格填充
RPAD( string, length[ , padding]) 在string右侧填充padding指定的字符串直到达到length指定的长度,若未指定padding,则默认为用空格填充
LTRIM( string, [ trimming_value]) 去掉字符串string 左边的由trimming_value 指定的字符
RTRIM( string, [ trimming_value]) 去掉字符串string右边的由trimming_value 指定的字符
REPLACE( string, string1[ , string2]) 替换字符串。在字符串string 中查找string1,并用string2替换。如果没有指定string2,则查找到指定的字符串时,删除该字符串
SUBSTR( string,start, [ count]) 获取字符串string的子串。返回string中从start 位置开始长度为count的子串

SQL> SELECT UPPER('abc'),LOWER('ABC'),INITCAP('abcdef')
				//将abc全部变成大写,将ABC全部变成小写,将abcdef的首字母变成大写
  2  FROM dual;

UPP LOW INITCA
--- --- ------
ABC abc Abcdef

数值函数

函数名 功能
ABS( value) 返回给定数字表达式的绝对值
CEIL( value) 返回大于或等于value的最小整数值
FLOOR( value) 返回等于或小于value 的最大整数值
COS( value) 求余弦值
COSH( value) 求反余弦值
EXP( value) 返回以e为底的指数值
LN( value) 返回value的自然对数
POWER( value, exponent) 返回value 的exponent次幂
SQRT( value) 返回value的平方根
ROUND( value, precision) 将value按precision精度进行四舍五入
MOD( value, divisor) 返回value 除以divisor 的余数
TRUNC( value, precision) 将value按precision精度进行截取,不进行四舍五入

日期和时间函数

函数名 功能
ADD_MONTHS( date, number) 在指定的日期date 上增加number个月
LAST_DAY(date) 返回日期date所在月的最后一天
MONTHS_BETWEEN(date1, date2) 返回date和date2之间隔多少个月
NEW_TME( date, current_zone, future_zone) 将date从current_zone时区转换为future_zone时区
NEXT_DAY(date, ‘day’) 返回指定日期(date) 后的星期(day) 对应的新日期
SYSDATE 返回系统当前时间
CURRENT_TIMESTAMP 返回当前的日期和时间
EXTRACT(c1 from d1) 从当前d1中抽取c1指定的年、月、日、时、分、秒
SQL> SELECT MONTHS_BETWEEN(SYSDATE,'1-1月-2020')
							//系统时间相隔2020年1月1日多少个月
  2  FROM dual;

MONTHS_BETWEEN(SYSDATE,'1-1月-2020')
------------------------------------
                           3.2550224

转换函数

函数名 功能
TO_CHAR( date,‘format’) 按照format的格式将日期型数据转换为字符串
TO_NUMBER(char) 将包含了数字的字符串转换为数值型数据
TO_DATE( string,‘format’) 按照format的格式将string字符串数据转换为日期型
CHARTOROWID( char) 将字符串转换为ROWID类型
ROWIDTOCHAR(x) 将ROWID类型转换为字符串类型
SQL> SELECT TO_NUMBER( (TO_CHAR(SYSDATE,'MM')) )+10
				//先把系统时间按月转换成字符串再转换成数字才可以进行加减运算
  2  FROM dual;

TO_NUMBER((TO_CHAR(SYSDATE,'MM')))+10
-------------------------------------
                                   14