SQL函数
一个函数可以有多个参数:
在Oracle数据库允许函数没参数:
在ORACEL中函数可以分有二类,
1.单行函数(一个行返回一个结果值,) 比较常见,像字符串函数,日期函数,转换函数,
2.多行函数(多个行返回一个结果值) 如,求平均,统计,求和这样的函数就是 多行函数,,他们都是多个行中,经过运算得到一个结果
1单行函数: Character,Conversion,Number,Date,General
字符函数[转换函数,(LOVER,(将所有的大写转换化小写)UPPER,(将有小写转换成大写)(INITCAP(将一个单词的首字转换成大写))字符操纵函数(c)}
例子,,
SQL> select lower(ename) from emp;
LOWER(ENAM
----------
smith
allen
ward
jones
martin
blake
clark
scott
king
turner
adams
LOWER(ENAM
----------
james
ford
miller
已选择14行。
大写转成小写,,
字符在ORACLE中都自动存储为大写,
SQL>
自动换转成大写字母的函数upper
SQL> select *from emp where ename=upper('king');
EMPNO ENAME JOB MGR HIREDATE SAL COMM
--------- ---------- --------- ---------- ---------- ---------- ----------
DEPTNO
---------
7839 KING PRESIDENT 17-11月-81 5000
10
SQL>
------------------------------------
单词的首字母为大写:函数initcap
SQL> select initcap(ename) from emp;
INITCAP(EN
----------
Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams
INITCAP(EN
----------
James
Ford
Miller
已选择14行。
-------
字符串连接函数,concat();
SQL> select concat(ename,job) from emp;
CONCAT(ENAME,JOB)
-------------------
SMITHCLERK
ALLENSALESMAN
WARDSALESMAN
JONESMANAGER
MARTINSALESMAN
BLAKEMANAGER
CLARKMANAGER
SCOTTANALYST
KINGPRESIDENT
TURNERSALESMAN
ADAMSCLERK
CONCAT(ENAME,JOB)
-------------------
JAMESCLERK
FORDANALYST
MILLERCLERK
已选择14行。
SQL>
同字符串连接符(||)的作用是一样的,
SQL> select ename || job from emp;
ENAME||JOB
-------------------
SMITHCLERK
ALLENSALESMAN
WARDSALESMAN
JONESMANAGER
MARTINSALESMAN
BLAKEMANAGER
CLARKMANAGER
SCOTTANALYST
KINGPRESIDENT
TURNERSALESMAN
ADAMSCLERK
ENAME||JOB
-------------------
JAMESCLERK
FORDANALYST
MILLERCLERK
已选择14行。
SQL>
取字符串函数substr();
SQL> select substr(ename,1,4) from emp;
SUBSTR(E
--------
SMIT
ALLE
WARD
JONE
MART
BLAK
CLAR
SCOT
KING
TURN
ADAM
SUBSTR(E
--------
JAME
FORD
MILL
已选择14行。
选择字符串的长度 函数 length();
已选择14行。
SQL> select length(ename) from emp;
LENGTH(ENAME)
-------------
5
5
4
5
6
5
5
5
4
6
5
5
4
6
已选择14行。
SQL>
取得某个字符所在的位置, instr();
SQL> select instr(ename,'S') from emp;
INSTR(ENAME,'S')
----------------
1
0
0
5
0
0
0
1
0
0
5
5
0
0
已选择14行。
SQL>
SQL> select ename, instr(ename,'S') from emp;
ENAME INSTR(ENAME,'S')
---------- ----------------
SMITH 1
ALLEN 0
WARD 0
JONES 5
MARTIN 0
BLAKE 0
CLARK 0
SCOTT 1
KING 0
TURNER 0
ADAMS 5
JAMES 5
FORD 0
MILLER 0
已选择14行。
SQL>
字符串占位符使用函数 lpad();
SQL> select lpad(ename,10,'*') from emp;
LPAD(ENAME,10,'*')
--------------------
*****SMITH
*****ALLEN
******WARD
*****JONES
****MARTIN
*****BLAKE
*****CLARK
*****SCOTT
******KING
****TURNER
*****ADAMS
*****JAMES
******FORD
****MILLER
已选择14行。
查看表结构: desc +表名
阅读(1818) | 评论(0) | 转发(0) |