《SQL 21日自学通(V3.0)(PDF格式)》第23章


输出 
STATE HIGHTEMP LOWTEMP 
CA …50 120 
FL 20 110 
LA 15 99 
ND …70 101 
NE …60 100 
例如 这里对数据进行这样的运算 
SQL》 SELECT STATE HIGHTEMP LOWS LOWTEMP HIGHS FROM HILOW 
STATE LOWS HIGHS 
CA 50 …120 
FL …20 …110 
LA …15 …99 
ND 70 …101 
NE 60 …100 
第二种用法 很明显 是作为减号从某一列中减去另一列 例如 
SQL》 SELECT STATE 
HIGHTEMP LOWS 
LOWTEMP HIGHS 
(LOWTEMP HIGHTEMP) DIFFERENCE 
FROM HILOW 
STATE LOWS HIGHS DIFFERENCE 
CA …50 120 170 
FL 20 110 90 
EMAIL wyhsillypig@163。 45 
…………………………………………………………Page 46……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
LA 15 99 84 
ND …70 101 171 
NE …60 100 160 
注意这里使用了别名来对输入的错误进行更正 这只不过是一种暂时的补救方法 虽然这 
不是永久的解决办法 你是以后 第 21 天 常见的 SQL 错误及其解决方案 会看到如何 
对数据以及输入进行更正 在那里你将学会如何对错误的数据进行更正 
该查询不只是修正 至少看起来是这样 错误的数据 而且还创建了一个新列以获得每个 
记录的最高与最低的差价 
如何你在一个字符型字段中意外地使用了减号 你将会看到如下信息 
SQL》 SELECT STATE FROM HILOW 
ERROR ORA…01722 invalid number 
No rows selected 
在不同的解释器中错误的号码可能会不同 但是结果是相同的 
除法 
除法只有一种显而易见的应用 在 PRICE 表中它的应用如下 
输入 
SQL》 SELECT * FROM PRICE 
输出: 
ITEM WHOLESALE 
TOMATOES 。34 
POTATOES 。51 
BANANAS 。67 
TURNIPS 。45 
CHEESE 。89 
APPLES 。23 
rows selected。 
在下边的例句中你可以成功地将销售价折半 
输入/输出 
SQL》 SELECT ITEM WHOLESALE (WHOLESALE/2) SALEPRICE 2 FROM PRICE 
ITEM WHOLESALE SALEPRICE 
TOMATOES 。34 。170 
POTATOES 。51 。255 
BANANAS 。67 。335 
TURNIPS 。45 。225 
CHEESE 。89 。445 
APPLES 。23 。115 
6 rows selected。 
在这个 SELECT 语句中除法的作用是显而易见的 只不过将商品半价销售有点太难以理解 
了 
乘法 * 
乘法的运算也非常直观 再以 Price 表为例 
输入 
SQL》 SELECT * FROM PRICE 
输出 
ITEM WHOLESALE 
TOMATOES 。34 
POTATOES 。51 
BANANAS 。67 
EMAIL wyhsillypig@163。 46 
…………………………………………………………Page 47……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
TURNIPS 。45 
CHEESE 。89 
APPLES 。23 
6 rows selected。 
将表中的价格下调 10%可以用如下方法来实现 
输入/输出: 
SQL》SELECT ITEM WHOLESALE WHOLESALE * 0。9 NEWPRICE 
FROM PRICE 
ITEM WHOLESALE NEWPRICE 
TOMATOES 。34 。306 
POTATOES 。51 。459 
BANANAS 。67 。603 
TURNIPS 。45 。405 
CHEESE 。89 。801 
APPLES 。23 。207 
6 rows selected。 
通过这些操作您可以在 SELECT 语句中进行复杂的运算 
取模 % 
取模运算将返回一个除法的余数部分 以REMAINS 表举例如下 
输入 
SQL》 SELECT * FROM REMAINS 
输出 
NUMERATOR DENOMINATOR 
10 5 
8 3 
23 9 
40 17 
1024 16 
85 34 
6 rows selected。 
你也可以用 NUMERATOR % DENOMINATOR 的结果来建立一个新列 
输入/输出 
SQL》 SELECT NUMERATOR DENOMINATOR NUMERATOR%DENOMINATOR 
REMAINDER FROM REMAINS 
NUMERATOR DENOMINATOR REMAINDER 
10 5 0 
8 3 2 
23 9 5 
40 17 6 
1024 16 0 
85 34 17 
6 rows selected。 
在一些 SQL 解释器中取模运算符为 MOD 见第 4 天 函数— — 返回数据的再加工 下边 
的语句所得到的结果与上边的语句相同 
SQL》 SELECT NUMERATOR DENOMINATOR MOD NUMERATOR DENOMINATOR 
REMAINDER FROM REMAINS 
优先级别 
在这一部分的例子中主要讲述在 SELECT 语句中的优先级别 数据库 PRECEDENCE 的内 
容如下 
EMAIL wyhsillypig@163。 47 
…………………………………………………………Page 48……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
SQL》 SELECT * FROM PRECEDENCE 
N1 N2 N3 N4 
1 2 3 4 
13 24 35 46 
9 3 23 5 
63 2 45 3 
7 2 1 4 
用 PRECEDENCE 来做如下例子 
输入/输出 
SQL》 SELECT 
2 N1+N2*N3/N4 
3 (N1+N2)*N3/N4 
4 N1+(N2*N3)/N4 
5 FROM PRECEDENCE 
N1+N2*N3/N4 (N1+N2)*N3/N4 N1+(N2*N3)/N4 
2。5 2。25 2。5 
31。26 28。15 31。26 
22。8 55。2 22。8 
93 975 93 
7。5 2。25 7。5 
看到了吗 第一例与最后一例的结果是相同的 如果你把第四列改写成为 N1+N2* 
(N3/N4) 那么其结果与上边的例子是相同的 
比较运算 
顾名思义 比较运
小说推荐
返回首页返回目录