ORACLE学习05-单行函数

一、字符函数

1,字符串转换

-- lower() 将字符串转成小写

select lower(‘HELLO WORLD‘) from dual;

 

-- upper() 将字符串转大写

select upper(‘hello world‘) from dual;

 

-- initcap() 将字符串首字母大写

select initcap(‘hEllo woRld‘) from dual;

2,字符串截取

-- substr(a,b) 从a中,第b位开始取,取右边所有的字符

select substr(‘Hello World‘,4) from dual;

-- substr(a,b,c) 从a中,第b位开始取,取c位

select substr(‘Hello World‘,4,4) from dual;

 

-- lpad/rpad(a,n,b) 在a左/右填充b,直至长度为n

select lpad(‘Hello‘,8,‘*‘) ,rpad(‘Hello‘,8,‘*‘) from dual;

 

-- trim() 去掉前后指定的字符,也可以滤空操作

select trim(‘H‘ from ‘Hello WorldH‘) from dual;

select trim(‘ Hello WorldH ‘) from dual;

-- ltrim()/rtrim() 去掉左/右指定的字符,也可以滤空操作

 

-- replace() 替换指定位置的字符

select replace(‘Hello World‘,‘l‘,‘*‘) from dual;

3,字符串查询

-- instr() 在母串中查找子串,找到返回下标(从1开始),否则返回0

select instr(‘Hello World‘,‘ll‘) from dual;

 

-- length() 字符数, lengthb() 字节数

select length(‘Hello World‘), lengthb(‘Hello World‘) from dual

4,字符串拼接

-- 字段连接。使用||符号

select ‘aa‘ || ‘bb‘ from dual;

 

-- concat(a,b) 拼接a和b

select concat(‘a‘,‘b‘)||‘转23‘  demo from dual;

二、数字函数

-- round() 四舍五入,第一个参数为要进行四舍五入的数,第二个参数为保留的位数,大于0的为小数点后,小于0的为小数点前的

select round(12.345, 2),round(12.345, 1), round(12.345, 0),round(12.345, -1), round(12.345, -2) from dual;

-- trunc() 截断,第一个参数为要进行截断的数,第二个参数为保留的位数,大于0的为小数点后,小于0的为小数点前的

select trunc(12.345, 2),trunc(12.345, 1), trunc(12.345, 0), trunc(12.345, -1), trunc(12.345, -2) from dual;

-- mod() 取模操作

select mod(10,3) from dual;

三、日期函数

-- months_between(maxDate,minDate) 表示两个日期的月份之差

select months_between(sysdate,sysdate - 300) from dual;

 

-- add_months(date,n) 表示给指定的日期加n个月数

select add_months(sysdate,3) from dual;

 

-- next_day(date) 表示以当前时间为基准,下一个"目标日"的日期

select next_day(sysdate,‘星期二‘) from dual;

 

-- last_day(date) 计算当前日期所在月份的最后一天

select last_day(sysdate) from dual;

 

-- round(date,[param])对日期进行四舍五入,默认四舍五入到天

select round(sysdate,‘year‘) from dual;

 

-- trunc(date,[param])表示对日期进行截取

select trunc(sysdate) from dual;

四、转换函数

-- to_char(字符串/列,格式字符串) 将日期或者是数字变为字符串显示, 9 代表一位数字

select to_char(sysdate,‘yyyy-mm-dd‘),to_char(sysdate,‘yyyy‘) year, to_char(sysdate,‘mm‘) month, to_char(sysdate,‘dd‘) day from dual;

select to_char(sysdate,‘fmyyyy-mm-dd hh24:mi:ss‘) day from dual;

select to_char(10000,‘L999,999,999,999,999‘) from dual;

-- to_date(字符串,格式字符串) 将字符串变为date数据显示

select to_date(‘2016-3-18‘,‘yyyy-mm-dd‘) from dual;

-- to_number(字符串) 将字符串变为数字显示

select to_number(‘1‘) + to_number(‘2‘) from dual;

五、通用函数

-- nvl(a,b) 当a表达式为空(null,‘‘)时,返回b表达式

select nvl(‘‘,200) from dual;

 

-- nvl2(a,b,c) 如果a表达式的值不为空,显示表达式b的值,否则(为空)显示表达式c的值

select nvl2(‘‘,‘b‘,‘c‘) from dual;

 

-- nullif(a,b) 如果前后两个表达式的内容相等的,那就返回空,否则,返回第一个表达式的值

select nullif(5,5) from dual;

 

-- coalesce(a,b,c...) 用来匹配多个字段的值,如果表达式1的值为空,显示表达式2的值,如果表达式2也为空,显示表达式3的值,依次类推

select coalesce(‘‘,null,‘‘,‘a‘) from dual;

 

-- decode(被对比参数,对比参数1,返回值1,对比参数2,返回值2,....) 函数非常类似于程序中的if…else…语句

select decode(1,0,‘0-0‘,1,‘1-1‘,2,‘2-2‘) from dual;

六、case when 语句

--简单Case函数

 

CASE sex

WHEN ‘1‘ THEN ‘男‘

WHEN ‘2‘ THEN ‘女‘

ELSE ‘其他‘ END

 

--Case搜索函数

 

CASE

WHEN sex = ‘1‘ THEN ‘男‘

WHEN sex = ‘2‘ THEN ‘女‘

ELSE ‘其他‘ END

selct 中的用法

SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/

ELSE NULL

END) 男生数,

COUNT (CASE WHEN sex = 2 THEN 1

ELSE NULL

END) 女生数

FROM students GROUP BY grade;

where 中的用法

SELECT s.name

FROM student s

WHERE

(CASE

WHEN s.class = ‘001‘ THEN 1

WHEN s.class = ‘002‘ THEN 1

ELSE 0 END) = 1

时间: 2024-08-08 20:43:25

ORACLE学习05-单行函数的相关文章

oracle学习笔记单行函数

单行函数 只对一行进行变换  每行返回一个结果 单行函数分 字符.数值.日期.转换.通用 字符函数:大小写控制函数.字符控制函数 大小写控制函数:lower, upper, initcap 字符控制函数:concat,substr,length,instr,lpad|rpad,trim,replace lower,upper,initcap select lower('SQL') from dual; --结果 sql select upper('sql') from dual; --结果 SQ

Oracle中的单行函数

Oracle中的单行函数 1 字符函数 UPPER()--将字符串转换为大写 SELECT UPPER('abc') FROM dual; LOWER()-将字符串转换为小写 SELECT LOWER('ABC') FROM dual; INITCAP()-首字母大写,其它字母小写. SELECT INITCAP('hello') FROM dual; REPLACE()-将指定的字符/字符串替换 SELECT REPLACE('abcd efg','cd','XXX') FROM dual;

Oracle系列四 单行函数查询语句

单行函数 操作数据对象 接受参数返回一个结果 只对一行进行变换 每行返回一个结果 可以转换数据类型 可以嵌套 参数可以是一列或一个值 包含:字符,数值,日期,转换,通用 字符函数 1.大小写控制函数:这类函数改变字符的大小写. LOWER('SQL Course') sql course UPPER('SQL Course') SQL COURSE INITCAP('SQL Course') Sql Course 示例: SELECT employee_id, last_name, depart

oracle之3单行函数之条件表达式

单行函数之条件表达式 Case表达式: 例如: 也可以在条件判断的when中写表达式 Decode函数: 例如: 原文地址:https://www.cnblogs.com/txf0324/p/11038070.html

Oracle的基本学习(三)—单行函数

一.字符函数   1.大小写控制函数 --lower:使字母变为小写-- --upper:使字母变为大写-- --initcap:使字符的第一个字母变为大写-- select lower('ABC'), upper('sql'), initcap('HeLlo SQL') from dual; select employee_id, department_id,last_name, salary from employees where lower(last_name)='king';   2.

Oracle 常用的单行函数

数值函数: 1.round:返回四舍五入后的值 round(数字,参数) 参数不写默认为0 后面的参数指定了返回值的精度,或者说是从小数点第几位开始四舍五入,如果不带后面的参数,则默认为四舍五入取整数.精度截取以小数点为分界线,正数表示从以左到右截取并四舍五入,负数表示从右往左截取并四舍五入,精度值可以为小数. select round(1992.54, 1) from dual; select round(1992.54) from dual; select round(1992.54, -1

08 单行函数与组函数

本文将阐述一下linux当中的函数.linux当中函数分为单行函数和组函数,单行函数分为字符串函数.数字函数.日期函数以及其他函数,组函数分为max.min.avg.sum.count. 1 系统.环境和前提约束 win10 64 oracle 11g https://www.jianshu.com/p/1609289f4c5f 2 操作 1 以系统管理员启动cmd命令行 2.单行函数 字符串函数 # 在windows命令行下连接scott sqlplus scott/tiger # lengt

Oracle学习(三):单行函数

1.知识点:可以对照下面的录屏进行阅读 SQL> --字符函数 SQL> --字符串的转换 SQL> select lower('hellO WORld') 转小写,upper('hellO WORld') 转大写,initcap('hello world') 首字母大写 2 from dual; SQL> --substr(a,b) 从a中,第b位开始取,取右边所有的字符 SQL> select substr('Hello World',4) from dual; SQL&

Oracle学习(3):单行函数

单行函数 单行函数: 操作数据对象 接受参数返回一个结果 只对一行进行变换 每行返回一个结果 可以转换数据类型 可以嵌套 参数可以是一列或一个值 ************************************************************************************************************************************************* 字符函数 **************************