单行函数的使用

什么是函数

任何东西,只要它能接收输入,对输入进行加工并产生输出,它就可以被称之为函数。

例如:牛是一个函数,它的输入是草,而产生的输出是牛奶。

函数是最受结构化程序设计者们所吹捧的一种程序设计结构。它可以有一个或多个输入但只能有一个输出。即函数只有一个出口。如果您的程序基本上都是由函数组成的话,该程序很容易调试,也很容易被重用。

单行函数简介

单行函数的格式如下:

函数名【(参数1,参数2,参数3,…)】

其中参数可以为:■ 用户定义的常量■ 变量■ 列名■ 表达式

单行函数只对表中的一行数据进行操作,并且对每一行数据只产生一个输出结果。单行函数可以接受一个或多个参数,其产生的输出结果的数据类型可能与参数的数据类型不同。

单行函数可用在如下的子句中:

■ SELECT

■ WHERE

■ ORDER BY

而且单行函数可以嵌套。

单行函数包含:

■ 字符型

■ 数字型

■ 日期型转换型

■ 一般型函数

单行字符型函数

常用的字符型函数包括:

LOWER

UPPER

INITCAP

CONCAT

SUBSTR

LENGTH

INSTR

TRIM

REPLACE

LOWER(列名|表达式):该函数是把字符转换成小写。可以通过例4-1的查询语句来验证这一单行字符型函数。

例4-1

SQL> SELECT LOWER('SQL: Structural Query Language')

2 FROM dual;

例4-1结果

LOWER('SQL:STRUCTURALQUERYLANGUAGE')

sql:structural query language

UPPER(列名|表达式):该函数是把字符转换成大写。可以通过例4-2的查询语句来验证这一单行字符型函数。

例4-2

SQL> SELECT UPPER('sql is used exclusively in rdbmses')

2 FROM dual;

例4-2结果

UPPER('SQLISUSEDEXCLUSIVELYINRDBMSES')

SQL IS USED EXCLUSIVELY IN RDBMSES

INITCAP(列名表达式):该函数是把每个字的头一个字符转换成大写,其余的转换成小写。

可以通过如例4-3的查询语句来验证这一单行字符型函数。

例4-3

SQL> SELECT INITCAP('SQL is an ENGLISH LIKE language')

2 FROM dual;

例4-3结果

INITCAP('SQLISANENGLISHLIKELANGUAGE')

Sql Is An English Like Language

CONCAT(列名)表达式,列名|表达式):该函数是把头一个字符串和第二个字符串连接成一个字符串。

可以通过例4-4的查询语句来验证这一单行字符型函数。

例4-4

SQL> SELECT CONCAT('SQL allows you to manipulate the data in DB',

2' without any programming knowledge')

3 FROM dual;

例4-4结果

CONCAT('SQLALLOWSYOUTOMANIPULATETHEDATAINDB','WITHOUTANYPROGRAMMINGKNOWLEDGE')

SQL allows you to manipulate the data in DB without any programming knowledge

SUBSTR(列名)表达式,m,【n】):该函数是返回指定的子串。该子串是从第m个字符开始,其长度为n。

可以通过例4-5的查询语句来验证这一单行字符型函数。

例4-5

SQL> SELECT SUBSTR('SQL lets you concentrate on what has to be done',14)

2 FROM dual;

例4-5结果

SUBSTR('SQLLETSYOUCONCENTRATEONWHATHASTOBEDONE',14)

concentrate on what has to be done

LENGTH(列名|表达式):该函数是返回列中或表达式中字符串的长度。可以通过例4-6的查询语句来验证这一单行字符型函数。

例4-6

SQL> SELECT LENGTH('SQL does not let youconcentrate on how it will be achieved')

2 FROM dual;

例4-6结果

LENGTH('SQLDOESNOTLETYOUCONCENTRATEONHOWITWILLBEACHIVED')

58

INSTR(列名|表达式,'字符串',【m】,【n】):该函数是返回所给字符串的数字位置,m表示从第m个字符开始搜索,n表示所给字符串出现的次数,它们的默认值都为1。

您可以通过例4-7的查询语句来验证这一单行字符型函数。

例4-7

SQL> SELECT INSTR('SQL allows for dynamic DB changes','f')

2 FROM dual;

例4-7结果

INSTR('SQLALLOWSFORDYNAMICDBCHANGES','F')

12

TRIM(【leading)trailing|both】要去掉的字符FROM 源字符串):该函数能够从“源字符串"中的头(leading)部,或尾(trailing)部,或从头(leading)部和尾(trailing)部(both)中去掉“要去掉的字符”。

如果没有指定头(leading)或尾(trailing),TRIM函数按默认(both)处理。

例4-9

SQL> SELECT TRIM('?' FROM '?SQL*PLUS is the SQL implementation

2                                 used in an Oracle RDBMS or ORDBMS.')

3 FROM dual;

例4-9结果

TRIM('?'FROM'?SQL*PLUSISTHESQLIMPLEMENTATIONUSEDINANORACLERDBMSORORDBMS.')

SQL*PLUS is the SQL implementation

used in an Oracle RDBMS or ORDBMS.

例4-11

SQL> SELECT TRIM('s' FROM'sql*plus isa fourth generation query languages')

2 FROM dual;

例4-11结果

TRIM('S'FROM'SQL*PLUSISAFOURTHGENERATIONQUERYLANGUAGES')

ql*plus is a fourth generation query language

例4-12

SQL> SELECT TRIM(trailing 's' FROM'sql*plus is a fourth generation query languages')

2 FROM dual;

例4-12结果

TRIM(TRAILING'S'FROM'SQL*PLUSISAFOURTHGENERATIONQUERYLANGUAGES')

sql*plus is a fourth generation query language

REPLACE(正文表达式,要搜寻的字符串,替换字符串):该函数是在“正文表达式”中查找"要搜寻的字符串",如果找到了就用"替换字符串"替代。可以通过例4-13的查询语句来验证这一单行字符型函数。

例4-13

SQL> SELECT REPLACE('SQL*PLUS supports loops or if statements','supports',

2                        'does not support')

3 FROM dual;

例4-13结果

REPLACE('SOL*PLUSSUPPORTSLOOPSORIFSTATEMENTS','SUPPORTS','DOESNOTSUPPORT')

SQL*PLUS does not support loops or if statements

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值