SQL单行函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
两种SQL 函数:
单行函数
多行函数
单行函数:
操作数句对象
接受函数返回一个结果
只对一行进行变换
每行返回一个结果
可以转换数据类型
可以嵌套
参数可以是一列或一个值
单行函数包括:
字符函数,数值函数,日期函数,转换函数,通用函数
字符函数:
大小写控制函数---->这类函数改变字符的大小写LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE INITCAP('SQL Course') Sql Course
eg:
SELECT employee_id, last_name, department_id FROM employees
WHERE LOWER(last_name) = 'higgins';
字符控制函数--->这类函数控制字符
CONCAT
SUBSTR
LENGTH
INSTR
LPAD | RPAD
TRIM
REPLACE
函数结果
CONCAT('Hello', 'World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld', 'W') 6
LPAD(salary,10,'*') *****24000
RPAD(salary, 10, '*') 24000*****
TRIM('H' FROM 'HelloWorld') elloWorld
SQL> select empno,concat(ENAME,JOB) name,length(ENAME),instr(ENAME,'I') "CONTAIN
S 'I'?" FROM emp;
EMPNO NAME LENGTH(ENAME) CONTAINS 'I'?
---------- ------------------- ------------- -------------
7369 SMITHCLERK 5 3
7499 ALLENSALESMAN 5 0
7521 WARDSALESMAN 4 0
7566 JONESMANAGER 5 0
7654 MARTINSALESMAN 6 5 ......
......
SQL> SELECT lpad(sal,10,'*') from emp;
LPAD(SAL,10,'*')
--------------------
*******800
******1600
******1250
******2975
SQL> SELECT rpad(sal,10,'*') from emp;
RPAD(SAL,10,'*')
--------------------
800*******
1600******
1250******
2975******
1250******
2850******
replace :
SQL> select * from a;
MAPNUM
----------------------------
001#001
001#002
002#002
SQL> select replace (mapnum,substr(mapnum,4,1),null) from a;
REPLACE(MAPNUM,SUBSTR(MAPNUM,4,1),NULL)
---------------------------------------------------------------------
001001
001002
002002
数字函数:
ROUND: 四舍五入
ROUND(45.926, 2) 45.93
TRUNC: 截断
TRUNC(45.926, 2) 45.92
MOD: 求余
MOD(1600, 300) 100
ROUND 函数:
SQL> SELECT ROUND(45.923,2), ROUND(45.923,0),
2 ROUND(45.923,-1)
3 FROM DUAL;
ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)
--------------- --------------- ----------------
45.92 46 50 DUAL 是一个‘伪表’,可以用来测试函数和表达式
SQL> SELECT ROUND(44.215,-1) from dual;
ROUND(44.215,-1)
----------------
40
SQL> SELECT ROUND(48.215,-1) from dual;
ROUND(48.215,-1)
----------------
50
SQL> SELECT ROUND(68.215,-1) from dual;
ROUND(68.215,-1)
----------------
70
TRUNC 函数:
SQL> SELECT TRUNC(45.923,2), TRUNC(45.923),
2 TRUNC(45.923,-2)
3 FROM DUAL;
TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-2)
--------------- ------------- ----------------
45.92 45 0
SQL> SELECT TRUNC(445.923,-2) from dual;
TRUNC(445.923,-2)
-----------------