按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
输入
SQL》 SELECT FIRSTNAME SUBSTR FIRSTNAME 3 FROM CHARACTERS
输出
FIRSTNAME SUBSTR(FIRSTN
kelly lly
CHUCK UCK
LAURA URA
FESTER STER
ARMANDO MANDO
MAJOR JOR
看 是不是将字符串余下的部分返回了
现在再来看一个例子
输入
SQL》 SELECT * FROM SSN_TABLE
输出
SSN__________
300541117
301457111
459789998
EMAIL wyhsillypig@163。 88
…………………………………………………………Page 89……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
如果直接阅读上边的结果是比较困难的 比较好的解决办法是使用下划线 请先想一下下
边语句的输出情况
输入
SQL》 SELECT SUBSTR SSN 1 3 ||'…'||SUBSTR SSN 4 2 ||'…'||SUBSTR SSN
6 4
SSN FROM SSN_TABLE
输出
SSN_________
300…54…1117
301…45…7111
459…78…9998
注 这在当数字特别大 例如 1 343 178 128 需要用逗号分隔时以及区位号码或电
话号码需要下划线分隔时特别有效
这是 SUBSTR 的另一个非常有用的功能 倘若你需要打印一个报表而其中一些列的宽度超
过了 50 个字符时 你可以使用 SUBSTR 来减小列宽以使它更接近数据的真实宽度 请看
一个下面的这两个例子
输入
SQL》 SELECT NAME JOB DEPARTMENT FROM JOB_TBL
输出
NAME______________________________________________________________
JOB_______________________________DEPARTMENT______________________
ALVIN SMITH
VICEPRESIDENT MARKETING
1 ROW SELECTED。
分析
注意 这几列已经换行显示了 这例得阅读变行非常困难 现在试一下下边的 SELECT
语句
输入
SQL》 SELECT SUBSTR(NAME; 1;15) NAME; SUBSTR(JOB;1;15) JOB;
EMAIL wyhsillypig@163。 89
…………………………………………………………Page 90……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
DEPARTMENT
2 FROM JOB_TBL;
输出
NAME________________JOB_______________DEPARTMENT_____
ALVIN SMITH VICEPRESIDENT MARKETING
是不是变得好多了
TRANSLATE
这一函数有三个参数 目标字符串 源字符串和目的字符串 在目标字符串与源字符
串中均出现的字符将会被替换成对应的目的字符串的字符
输入
SQL》 SELECT FIRSTNAME; TRANSLATE(FIRSTNAME
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
'NNNNNNNNNNAAAAAAAAAAAAAAAAAAAAAAAAAA) FROM
CHARACTERS
输出
FIRSTNAME TRANSLATE(FIRST
kelly kelly
CHUCK AAAAA
LAURA AAAAA
FESTER AAAAAA
ARMANDO AAAAAAA
MAJOR AAAAA
6 rows selected。
注意 这个函数对大小写是敏感的
INSTR
如果需要知道在一个字符串中满足特定的内容的位置可以使用 INSTR 它的第一个参
数是目标字符串 第二个参数是匹配的内容 第三和第四个参数是数字 用以指定开始搜
EMAIL wyhsillypig@163。 90
…………………………………………………………Page 91……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
索的起点以及指出第几个满足条件的将会被返回 下例将从字符串的第二个字符开始 搜
索并返回第一个以 O 开头的字符的位置
输入
SQL》SELECT LASTNAME INSTR LASTNAME O 2 1 FROM CHARACTERS
输出
LASTNAME INSTR(LASTNAME;'O';2;1)
PURVIS 0
TAYLOR 5
CHRISTINE 0
ADAMS 0
COSTALES 2
KONG 2
6 rows selected
分析
默认第三个与第四个参数的数值均为 如果第三个数值为负数 那么将会从后向前搜索
LENGTH
LENGTH 将返回指定字符串的长度 例如
输入
SQL》SELECT FIRSTNAME LENGTH RTRIM FIRSTNAME FROM CHARACTERS
输出
FIRSTNAME LENGTH(RTRIM(FIRSTNAME))
kelly 5
CHUCK 5
LAURA 5
FESTER 6
ARMANDO 7
MAJOR 5
注意 这里使用了函数 RTRIM 否则 LENGTH 将全部返回 15
转换函数
转换函数有三个 可以使你方便地将数据从一种类型变换为另一种类型 本节的示例
EMAIL wyhsillypig@163。 91
…………………………………………………………Page 92……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
使用表 CONVERSIONS
输入
SQL》 SELECT * FROM CONVERSIONS
输出
NAME TESTNUM
40 95
13 23
74 68
NAME 列为字符串 该列的宽度为 15 TESTNUM 列为数字
TO_CHAR
该函数的最初功能是将一个数字转换为字符型 不同的解释器可能会使用它来转换其它的
数据类型 例如日期型转换为字符型或者是拥有更多的参数 下例展示了该函数的基本功
能
输入
SQL》 SELECT TESTNUM TO_CHAR TESTNUM FROM CONVERT
输出
TESTNUM TO_CHAR(TESTNUM)
95 95
23 23
68 68
稍安勿燥 下例可以证明它确实已经将 TESTNUM 转换为字符型了
输入
SQL》SELECT TESTNUM LENGTH TO_CHAR TESTNUM FROM CONVERT
输出
TESTNUM LENGTH(TO_CHAR(TESTNUM))
95 2
23 2
68 2
分析
如果对数字使用 LENGTH 函数将会返回错误 注意 TO_CHAR 与在先前进过的 CHR 不同
EMAIL wyhsillypig@163。 92
…………………………………………………………Page 93……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
CHR 返回字符集中给定数字位置的一个字符或符号
TO_NUMBER
该函数与 TO_CHAR 函数相对应 显而易见 它是将一个字符串型数字转换为数值型 例
如
输入
SQL》 SELECT NAME TESTNUM TESTNUM*TO_NUMBER NAME FROM CONVERT
输出
NAME TESTNUM TESTNUM*TO_NUMBER(NAME)
40 95 3800
13 23 299
74 68 5032
分析
如果该函数没有将 NAME 转换为数值的话将会返回一个错误信息
其它函数
这里有三个函数可能对你是有用处的
GREATEST 与 LEAST
这两个函数将返回几个表达式中最大的和最小的 例如
输入
SQL》 SELECT GREATEST ALPHA BRAVO FOXTROT DELTA
FROM CONVERT
输出
GREATEST
FOXTROT
FOXTROT
FOXTROT
分析
注意 GREATEST 将会返回在字母表中最靠后的字符开头的字符串 虽然看起来似乎没
EMAIL wyhsillypig@163。 93
…………………………………………………………Page 94……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
有必要使用 FROM 子句 可是如果 FROM 子句没有的话 你将会收到一个错误信息 每
一个 SELECT 语句都需要 FROM 子句 由于给定的表有三行 所以结果返回了三个
输入
SQL》 SELECT LEAST 34 567 3 45 1090 FROM CONVERT
输出
LEAST(34 567 3 45 1090)
3
3
3
就像你看到的那样 这两个函数也可以对数字进行处理
USER
该函数返回当前使用数据库的用户的名字
输入
SQL》 SELECT USER FROM CONVERT
输出
USER
PERKINS
PERKINS
PERKINS
只有我一个人在使用这个数据库 看