按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
输入
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
…………………………………………………………Page 82……………………………