8.7 自测题答案

(1) 答案为B和C。单行函数为数据集中选中的每条记录都执行一次,它可以没有输入参数(例如SYSDATE),也可以有许多参数。

A和D不正确,A不正确是因为按定义函数只返回一个结果,D不正确是因为有许多函数没有参数。

(2) 答案为A。SUBSTR函数从给定输入字符串中提取包含四个字符的子字符串,从第5个字符开始(包含第5个字符)。位置1~4的字符是How_。从位置5的字符开始,接下来的四个字符是单词“long”。

B、C和D不正确,因为B是从位置4开始的五字符子字符串,而ring?虽然也是五个字符,但它是从给定字符串结尾开始的五个字符。

(3) 答案为B。INSTR函数返回搜索字符串第n次出现的位置,在启动搜索之后从起始位置开始可以找到该搜索字符串。该搜索字符串是下划线字符,从源字符串的位置5开始,该字符第三次出现的位置是位置14。

A、C和D不正确,因为位置4是搜索字符串第一次出现的位置,位置12是搜索字符串从位置1开始第三次出现的位置。

(4) 答案为C。14除以3,结果是4,余数是2。

A、B和D都不正确。因为MOD函数返回除法运算的余数。

(5) 答案为A。因为2009年1月的第一天是星期四,那么下一个星期三的日期应该是6天之后。

B、C和D不正确。B返回给定日期所属月份的最后一天,C返回字符串而不是日期。

(6) 答案为C。日期TRUNC函数不执行舍入,因为截取的精度是YEAR,所以忽略给定日期的日和月部分,返回它所属年的第一天。

A、B和D不正确。A返回给定日期所属月份的最后一天,B返回通过舍入而不是截取得到的结果。

(7) 答案为D。只能使用TO_CHAR函数而不是TO_DATE函数将日期转换为字符串。

A、B和C都不正确。它们都是正确的语句。

(8) 答案为A。DD部分以大写字母形式返回该月的日。因为它是数字,所以不要紧,除非应用’th’掩码,这里组成部分是大写字母形式。MONTH返回用大写字母写的月。

B、C和D不正确。如果格式掩码是’fmddth Month',就会返回B。如果格式掩码是’fmDDspth MONTH',就会返回C。

(9) 答案为A。NULLIF函数比较它的两个参数。由于它们不相等,因此返回第一个参数。NVL2 ('CODA', 'SPANIEL', 'TERRIER')函数调用返回SPANIEL,因为它的第一个参数不是空值。

B、C和D都不正确。如果NULLIF函数返回NULL。B就是正确的,但只有该函数的两个参数完全相同,才会出现这种情况,而本题中,该函数的两个参数不相同。如果NVL2的第二个参数是NULL, C就是正确的,但本题不是这样。

(10) 答案为B。最里面的函数TO_CHAR(SYSDATE, 'MM')返回字符串’07'。外面的函数是DECODE ('07', '02', 'TAX DUE', 'PARTY')。由于’07’与’02’不相等,因此返回另一个部分’PARTY'。

A、C和D都不正确。只有从SYSDATE提取的月部分是’02’时才会返回A。C和D不是DECODE函数参数列表中的输出选项。