问题
单项选择题
ITEM表包含了如下的列:
ITEM_ID NUMBER(9)
COSTNUMBER(7, 2)
RETAIL NUMBER(7, 2)
其中,RETAIL和COST列的值都大于0。查看以下的两个SQL语句,请问其结果是什么
(1)SELECT iterm_id, (retail*1.25)+5.00-(cost*1.10)-(cost*.10)
FROM item;
(2)SELECT item_id, retail*1.25+5.00-cost*1.10-cost*.10
FROM item;
A.第一个语句返回的结果将比第二个语句返回的低
B.第一和第二个语句将返回相同的结果
C.第一个语句返回的结果将比第二个语句返回的高
D.两个语句中只有一个将被执行
答案
参考答案:B
解析: 这一题测试对算术运算符的优先级的熟悉程度。根据有关算术运算符的优先级的介绍,可知乘法的运算优先级本身就高于加减法,所以在本题中第一个SQL语句与第二个SQL语句中算术运算的优先级是相同的,即括号并未真正改变第一个SQL语句中任何算术表达式的优先级。由于这两个SQL语句中的所有表达式都是相同的(除了括号之外),所以这两个语句返回的结果也将完全相同,因此选项B是正确的。要注意的是这两个语句都是正确的,都可以执行,所以选项D肯定是错的。