友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
SQL 21日自学通(V3.0)(PDF格式)-第18部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
3。1415 4 …57。667 42
…45 。707 15 55
5 9 …7。2 5。3
EMAIL wyhsillypig@163。 74
…………………………………………………………Page 75……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
ABS
ABS 函数返回给定数字的绝对值 例如
输入
SQL》SELECT ABS A ABSOLUTE_VALUE FROM NUMBERS
输出
ABSOLUTE_VALUE ABSOLUTE_VALUE
3。1415 57。667
45 15
5 7。2
CEIL 和 FLOOR
CEIL 返回与给定参数相等或比给定参数在的最小整数 FLOOR 则正好相反 它返回
与给定参数相等或比给定参数小的最大整数 例如
输入
SQL》SELECT B CEIL B CEILING FROM NUMBERS
输出
B CEILING B CEILING
4 4 42 42
。707 1 55 55
9 9 5。3 6
输入/输出
SQL》SELECT A FLOOR A FLOOR FROM NUMBERS
A FLOOR A FLOOR
3。1415 3 …57。667 …58
…45 …45 15 15
5 5 …7。2 …8
COS COSH SIN SINH TAN TANH
COS SIN TAN 函数可以返回给定参数的三角函数值 默认的参数认定为弧度制
如果你没有认识到这一点那你会觉得下例所返回的值是错误
EMAIL wyhsillypig@163。 75
…………………………………………………………Page 76……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
输入
SQL》SELECT A COS A FROM NUMBERS
输出
A COS(A) A COS(A)
3。1415 …1 …57。667 。437183
…45 。52532199 15 …。7596879
5 。28366219 …7。2 。60835131
分析
你可能认为 COS 45 的返回值应该为 0。707 左右 而不应该是 0。525 如果你想让它
按照弧度制来计算 那么你需要将弧度制转换成角度制 由于 360 角度为 2 个弧度 所以
我们可以写成
输入/输出
SQL》SELECT A COS A*0。01745329251994 FROM NUMBERS
A COS(A*0。01745329251994)
3。1415 。99849724
…45 。70710678
5 。9961947
…57。667 。5348391
15 。96592583
…7。2 。9921147
分析
这里的将角度转换成弧度后的数值 三角函数也可以像下面所写的那样工作
输入/输出
SQL》SELECT A COS A*0。017453 COSH A*0。017453 FROM NUMBERS
A COS(A*0。017453) COSH(A*0。017453)
3。1415 。99849729 1。0015035
…45 。70711609 1。3245977
5 。99619483 1。00381
…57。667 。53485335 1。5507072
15 。96592696 1。0344645
…7。2 。99211497 1。0079058
输入/输出
EMAIL wyhsillypig@163。 76
…………………………………………………………Page 77……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
SQL》 SELECT A SIN A*0。017453 SINH A*0。017453 FROM NUMBERS
A SIN(A*0。017453) SINH(A*0。017453)
3。1415 。05480113 。05485607
…45 …。7070975 …。8686535
5 。08715429 。0873758
…57。667 …。8449449 …1。185197
15 。25881481 。26479569
…7。2 …。1253311 …。1259926
输入/输出
SQL》 SELECT A TAN A*0。017453 TANH A*0。017453 FROM NUMBERS
A TAN(A*0。017453) TANH(A*0。017453)
3。1415 。05488361 。05477372
…45 …。9999737 …。6557867
5 。08748719 。08704416
…57。667 …1。579769 …。7642948
15 。26794449 。25597369
…7。2 …。1263272 …。1250043
EXP
EXP 将会返回以给定的参数为指数 以 e 为底数的幂值 其应用见下例
输入
SQL》SELECT A EXP A FROM NUMBERS
输出
A EXP(A) A EXP(A)
3。1415 23。138549 …57。667 9。027E…26
…45 2。863E…20 15 3269017。4
5 148。41316 …7。2 。00074659
LN and LOG
这是两个对数函数 其中 LN 返回给定参数的自然对数 例如
输入
SQL》SELECT A LN(A) FROM NUMBERS
EMAIL wyhsillypig@163。 77
…………………………………………………………Page 78……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
输出
ERROR
ORA…01428 argument …45 is out of range
这是因为我们忽视了参数的取值范围 负数是没有对数的 改写为
输入/输出
SQL》SELECT A LN ABS A FROM NUMBERS
A LN ABS A A LN ABS A
3。1415 1。1447004 …57。667 4。0546851
…45 3。8066625 15 2。7080502
5 1。6094379 …7。2 1。974081
分析
注意 你可以将 ABS 函数嵌入到 LN 函数中使用 第二个对数函数需要两个参数 其
中第二个参数为底数 下例将返回以 10 为底的 B 列的对数值
输入/输出
SQL》 SELECT B LOG B 10 FROM NUMBERS
B LOG(B;10) B LOG(B;10)
4 1。660964 42 。61604832
。707 …6。640962 55 。57459287
9 1。0479516 5。3 1。3806894
MOD
其实我们已经见过 MOD 函数了 在第三天的 表达式 条件及操作 就有它 我们
知道在 ANSI 标准中规定取模运算的符号为%在一些解释器中被函数 MOD 所取代 下例的
查询就返回了 A 与 B 相除后的余数
输入
SQL》SELECT A B MOD A B FROM NUMBERS
输出
A B MOD(A;B)
3。1415 4 3。1415
…45 。707 …。459
5 9 5
EMAIL wyhsillypig@163。 78
…………………………………………………………Page 79……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
…57。667 42 …15。667
15 55 15
…7。2 5。3 …1。9
POWER
该函数可以返回某一个数对另一个数的幂 在使用幂函数时 第一个参数为底数 第
二个指数
输入
SQL》SELECT A B POWER A B FROM NUMBERS
输出
ERROR
ORA…01428 argument 45 is out of range
分析
粗看时你可能会认为它不允许第一个参数为负数 但这个印象是错误的 因为像…4 这
样的数是可以做为底数的 可是 如果第一个参数为负数的话 那么第二个参数就必须是
整数 负数是不能开方的 对于这个问题可以使用 CEIL 或 FLOOR 函数
输入
SQL》SELECT A CEIL B POWER A CEIL B FROM NUMBERS
输出
A CEIL B POWER(A;CEIL(B))
3。1415 4 97。3976
…45 1 …45
5 9 1953125
…57。667 42 9。098E+73
15 55 4。842E+64
…7。2 6 139314。07
现在就可以有正确的结果了
SIGN
如果参数的值为负数 那么 SIGN 返回…1 如果参数的值为正数 那么 SIGN 返回 1
如果参数为零 那么 SIGN 也返回零 请看下例
EMAIL wyhsillypig@163。 79
…………………………………………………………Page 80……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
输入
SQL》SELECT A SIGN A FROM NUMBERS
输出
A SIGN A A SIGN A
3。1415 1 …57。667 …1
…45 …1 15 1
5 1 …7。2 …1
你也可以在 SELECT WHERE 子句中使用 SIGN
输入
SQL》SELECT A FROM NUMBERS WHERE SIGN A =1
输出
A
3。1415
5
15
SQRT
该函数返回参数的平方根 由于负数是不能开平方的 所以我们不能将该函数应用于
负数
输入/输出
SQL》SELECT A SQRT A FROM NUMBERS
ERROR
ORA…01428 argument '…45' is out of range
但是你可以使用绝对值来解除这一限制
输入/输出
SQL》SELECT ABS A SQRT ABS A FROM NUMBERS
ABS(A) SQRT(ABS(A))
3。1415 1。7724277
45 6。7082039
5 2。236068
57。667 7。5938791
EMAIL wyhsillypig@163。 80
…………………………………………………………Page 81……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
15 3。8729833
7。2 2。6832816
0 0
字符函数
许多 SQL 解释器都提供了字符和字符串的处理功能 本部分覆盖了大部分字符串处理
函数 这一部分的例子使用 CHARACTERS 表
输入/输出
SQL》 SELECT * FROM CHARACTERS
LASTNAME FIRSTNAME M CODE
PURVIS KELLY A 32
TAYLOR CHUCK J 67
CHRISTINE LAURA C 65
ADAMS FESTER M 87
COSTALES ARMANDO A 77
KONG MAJOR G 52
CHR
该函数返回与所给数值参数等当的字符 返回的字符取决于数据库所依赖的字符集
例如示例的数据库采用了 ASCLL 字符集 示例数据库的代码列的内容为数字
输入
SQL》SELECT CODE CHR CODE FROM CHARACTERS
输出
CODE CH CODE CH
32 87 W
67 C 77 M
65 A 52 4
在数值 32 处显示为空白 因为 32 在 ASCLL 码表中是空格
CONCAT
我们在第 3 天时学到过一个与这个函数所执行的功能相当的操作 符号表示将两个
EMAIL wyhsillypig@163。 81
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!