条件表达式问题
条件表达式问题
1. Oracle DB 中的数据类型正确的是什么?
- 它们被赋予列以进行排序。
- 它们被赋予表中结构化表示的列。
- 它们被赋予列以限制它可以存储的数据的性质。
- 它们不是强制性的。
答案:C。数据类型定义了列可以存储在表中的数据的性质。一列只能存储一种类型的数据。Oracle 中可用的主要数据类型是 NUMBER、VARCHAR2 和 DATE。
2. 嵌套函数是什么?
- Oracle DB 中嵌套函数的使用次数有 5 次限制。
- 它们从最外层到最内层进行评估。
- 它们从最内层到最外层进行评估。
- 嵌套表达式中的所有函数都返回相同的数据类型。
答案:C。单行函数可以分组函数可以嵌套在 SELECT 查询中,其中最里面的函数是第一个被执行的函数。最内层函数的执行结果作为外层函数的输入。
3. 以下哪些函数可以简化对可能包含空值的列的处理?
- 嵌套函数
- 一般功能
- 条件函数
- 以上都不是
答案: B。NVL、NVL2、NULLIF、COALESCE等通用函数是为了在显示查询结果的同时平息NULL的影响。它们通过分配替代值来绕过 NULL 值。
4. 以下哪些数据类型适用于一般函数?
- VARCHAR2
- 数字
- 日期
- 所有数据类型
答案:D。一般函数通常与所有主要数据类型兼容,如 NUMBER、VARCHAR2 和 DATE。
5. COALESCE 函数的正确之处是什么?
- 它接受最少 2 个和最多 5 个输入参数
- 它总是返回输入参数中的第一个 NULL 值
- 它可以接受无限数量的输入参数
- 它返回第一个非空参数,否则返回空值。
答案:C、 D。COALESCE 函数采用两个强制参数和任意数量的可选参数。语法是 COALESCE(expr1, expr2,Ö,exprn),其中 expr1 如果不为 null 则返回,否则 expr2 如果不为 null,依此类推。COALESCE 是 NVL 函数的一般形式,如以下两个方程所示: COALESCE(expr1,expr2) = NVL(expr1,expr2), COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3) )
6. NVL 功能中必须输入多少个参数?
- 0
- 1
- 2
- 3
答案:C . NVL 函数需要两个强制参数。它的语法是 NVL(original, ifnull),其中 original 表示被测试的词条,ifnull 是原始词条计算结果为 null 时返回的结果。原始参数和 ifnull 参数的数据类型必须始终兼容。它们必须是相同的类型,或者必须可以将 ifnull 隐式转换为原始参数的类型。NVL 函数返回一个与原始参数具有相同数据类型的值。
7、下列说法有什么错误?
NVL(如果为空,原始)
- 没有任何错误
- 不需要原参数
- 不需要参数“ifnull”
- 正确的说法是 NVL (original,ifnull)
答案:D . NVL 函数评估任何数据类型的列或表达式是否为空。如果该术语为空,则返回一个替代的非空值;否则,返回初始项。
8. 以下查询的输出是什么?
从双选择 NVL(1234);
- 1234
- 1000
- 空值
- ORA-00909: 参数数目无效错误
答案:D。他的 NVL 函数需要两个强制参数。它的语法是 NVL(original, ifnull),其中 original 表示被测试的词条,ifnull 是原始词条计算结果为 null 时返回的结果。
9. 以下查询的输出是什么?
SELECT NVL(1234,' ') FROM dual;
- 一个空白,即 ‘ ‘
- 1234
- 空值
- ORA-01722: 无效号码
答案:D。原始参数和 ifnull 参数的数据类型必须始终兼容。它们必须是相同的类型,或者必须可以将 ifnull 隐式转换为原始参数的类型。NVL 函数返回一个与原始参数具有相同数据类型的值。1234 应该是单引号。在这种情况下不会发生数据类型的隐式转换。
10. 以下查询的结果是什么?
SELECT NVL(SUBSTR('abc',-4),'SUBSTR 不起作用') FROM dual;
- 美国广播公司
- 公元前
- C
- SUBSTR 不起作用
答案:D。
11. 您需要提取一份报告,其中列出了部门 100 中所有员工的名字、姓氏和佣金百分比。该报告不应有任何为空的列。如果所有列都没有值,它们至少应该有一个“0”。以下哪个查询将满足此要求?(考虑给定的表结构)
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
-
SELECT first_name, last_name, Commission_pct*salary FROM员工 WHERE Department_id = 100;
-
SELECT first_name, last_name, NVL(commission_pct*salary,0)monthly_commission FROM员工 WHERE Department_id = 100;
-
SELECT first_name, last_name, NVL(commission_pct,0)*salary month_commission FROM员工 WHERE Department_id = 100;
-
SELECT first_name, last_name, Commission_pct*salary FROM员工;
答案:B、C。
12. Oracle DB 中的数据转换类型有哪些?
- 隐式转换
- 显式转换
- 外部转化
- 物理转换
答案:A、 B。TO_CHAR、TO_NUMBER 和TO_DATE 是三种使用最广泛的转换函数,详细讨论。TO_CHAR 函数将数字和日期信息转换为字符,而 TO_NUMBER 和 TO_DATE 分别将字符数据转换为数字和日期。
13. 在 Oracle DB 中进行隐式转换时会发生什么?
- Oracle DB 将一种数据类型隐式转换为预期的数据类型
- 用户必须将数据类型转换为预期的数据类型
- Oracle DB 不转换任何数据类型
- 隐式转换可由用户控制
答: A.如果 Oracle 数据库将值隐式转换为兼容的数据类型,则称为隐式转换。
14. 在 Oracle DB 中进行显式转换时会发生什么?
- Oracle DB 将一种数据类型转换为另一种数据类型并显式显示给用户
- Oracle DB 提示用户将一种数据类型转换为另一种数据类型,然后再转换数据类型
- 用户使用 Oracle DB 提供的转换函数来转换数据类型
- Oracle DB 中的数据类型从不显式转换
答案:C。当程序员必须使用转换函数之一以编程方式转换值时,这称为显式转换。
15、为了保证Oracle DB中SQL语句的可靠性,推荐以下哪种转换方式?
- 隐式和显式转换
- 隐式转换
- 显式转换
- 以上都不是
答案: C。TO_CHAR、TO_NUMBER 和TO_DATE 是使用最广泛的三种转换函数,详细讨论。TO_CHAR 函数将数字和日期信息转换为字符,而 TO_NUMBER 和 TO_DATE 分别将字符数据转换为数字和日期。
16. 以下哪个是 Oracle 执行的有效隐式转换?
- 数字到 VARCHAR2
- 迄今为止的数量
- 迄今为止的图表
- 到 VARCHAR2 的日期
答案:A、D。
17. 检查给定的 EMPLOYEES 表的结构。
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
以下查询应用哪种转换方法?
选择名字,薪水 来自员工 WHERE 租用日期 > '01-JAN-13';
- 没有转换发生并且此查询导致 ORA 错误
- 显式转换
- 隐式转换
- 隐式和显式转换
答案:C。Oracle将字符串(VARCHAR2 或 CHAR)隐式转换为 DATE,并提供所选的所需输出。
18. Oracle DB 支持以下哪些表达式求值?
- 字符数
- 到 VARCHAR2 的日期
- 字符到日期
- 迄今为止的数量
答案:A、 B。DATE 和 NUMBER 值可以轻松转换为它们的等效字符。当字符串符合以下日期模式时,可以进行隐式字符到日期的转换:[D|DD] separator1 [MON|MONTH] separator2 [R|RR|YY|YYYY]。
19. Oracle 中 CHAR 到 NUMBER 的强制和隐式转换是什么工作?
- 对于这种类型的转换,没有什么特别强制的
- 字符串必须代表有效数字
- Oracle 不支持此类转换
- CHAR 到 NUMBER 只需要显式转换
答案:B.字符数据必须表示一个有效的数字才能考虑进行隐式转换。
20. 下列哪些表达式可以显式地用于将 CHAR 转换为 NUMBER?
- TO_CHAR
- 使用 TO_DATE,然后将日期转换为 NUMBER
- TO_NUMBER
- 这种转换是不可能的
答案: C。TO_NUMBER 函数返回一个 NUMBER 类型的项目。转换为数字的字符串必须具有适当的格式,以便使用适当的格式掩码转换或剥离任何非数字组件。
21. 以下哪些表达式可以显式用于将 NUMBER 转换为 CHAR?
- TO_CHAR
- 使用 TO_DATE,然后将日期转换为 NUMBER
- TO_NUMBER
- 这种转换是不可能的
答案: A. TO_CHAR 函数返回数据类型为 VARCHAR2 的项目。当应用于 NUMBER 类型的项目时,有多种格式选项可用。
22. 下列哪些表达式可以显式地用于将 CHAR 转换为 DATE?
- TO_CHAR
- 使用 TO_DATE,然后将日期转换为 NUMBER
- TO_NUMBER
- 迄今为止
答案: D。TO_DATE 函数返回 DATE 类型的项目。转换为日期的字符串可能包含构成 DATE 的所有日期时间元素或仅包含其中的一部分。当只包含日期时间元素子集的字符串被转换时,Oracle 会提供默认值来构造完整的日期。字符串的组件使用格式模型或掩码与不同的日期时间元素相关联。
23. 下列哪些表达式可以显式地用于将 DATE 转换为 CHAR?
- TO_CHAR
- 迄今为止
- TO_NUMBER
- 这种转换是不可能的
答案: A. TO_CHAR 函数返回数据类型为 VARCHAR2 的项目。当应用于 NUMBER 类型的项目时,有多种格式选项可用。
24、以下哪些是Oracle提供的显式转换函数,用于将一种数据类型转换为另一种数据类型?
- TO_CHAR
- 迄今为止
- TO_NUMBER
- 上述所有的
答案: D。TO_CHAR、TO_NUMBER 和TO_DATE 是使用最广泛的三种转换函数,详细讨论。TO_CHAR 函数将数字和日期信息转换为字符,而 TO_NUMBER 和 TO_DATE 分别将字符数据转换为数字和日期。
25. 解释以下函数的工作。
TO_CHAR(数字/日期, [格式], [nls 参数])
- 它将 VARCHAR2 转换为 CHAR
- 它使用格式模型 [format] 将数字/日期转换为 VARCHAR2 字符串
- 它将 VARCHAR2 转换为 NUMBER 或 DATE
- [NLSPARAMETERS] 在声明中是强制性的
答案:B . TO_CHAR 函数返回数据类型为 VARCHAR2 的项目。当应用于 NUMBER 类型的项目时,有多种格式选项可用。
26. 以下语句中的 [NLSPARAMETERS] 子句指定了什么?
TO_CHAR(数字/日期, [格式], [nls 参数])
- 十进制字符
- 组分隔符
- 货币符号
- 上述所有的
答案:D。
27. 如果省略 [nlsparameters] 参数,TO_CHAR (number/date, [format], [nlsparameters]) 将使用什么值?
- 它抛出一个 ORA 错误
- [nlsparameters] 参数是必需的,不能省略。
- 它将使用会话的默认参数值。
- 它将使用在数据库设计期间设置的默认参数值。
答案:C。默认情况下,TO_CHAR 函数会考虑当前活动会话的 NLS 设置。
28.下列说法正确的是?
TO_CHAR(数字/日期, [格式], [nls 参数])
- nlsparameters 参数指定返回月份和日期名称的语言。
- 执行上述语句时省略了 nlsparameters 参数。
- 无论是否指定,nlsparameters 参数都将返回 NULL
- nlsparameters 参数将在每次执行时返回数据库的默认语言
答案:A。
29. 以下关于 Oracle DB 中的语句正确的是?
TO_NUMBER(字符,[格式],[nls 参数])
- 它将任何字符串转换为 [format] 中指定格式的数字
- 它仅将 NUMBER 转换为 [format] 中提到的所需格式
- 它将带有数字的字符串转换为 [format] 中指定格式的数字
- 这个函数的结果总是一个字符
答案: C。TO_NUMBER 函数返回一个 NUMBER 类型的项目。转换为数字的字符串必须具有适当的格式,以便使用适当的格式掩码转换或剥离任何非数字组件。
30. 以下关于 Oracle DB 中的语句正确的是?
TO_DATE(字符,[格式],[nls 参数])
- 它以 [format] 中指定的格式将任何字符串转换为 DATE
- 它仅将 DATE 转换为所需格式的另一个 DATE,如 [format] 中所述
- 它将带有 DATE 的字符串转换为 [format] 中指定格式的数字
- 它将带有 DATE 的字符串转换为 [format] 中指定格式的 DATE
答案: C。TO_DATE 函数返回 DATE 类型的项目。转换为日期的字符串可能包含构成 DATE 的所有日期时间元素或仅包含其中的一部分。
31.如果省略下面语句中的[format]参数,会出现什么结果?
TO_DATE(字符,[格式],[nls 参数])
- 它将返回格式为 DD-MON-YY 的 DATE 值
- 它将返回格式为 DD-MON-RR 的 DATE 值
- 它将返回一个字符值
- 它将返回一个 NUMBER 值
答案:A。
32. 下列关于 Oracle DB 中的语句,下列哪项是正确的?
TO_CHAR(日期,'frmt')
- fmt 可以用双引号和单引号编写。
- 在这个函数中 fmt 的大小写无关紧要
- fmt 可以包含任何字符或数字
- fmt 必须用单引号括起来,并且必须是有效的日期格式。
答案:D。
33. 下面关于执行收益率的语句是什么?
SELECT TO_CHAR ('01-JAN-13' 'DD-MON-YY') FROM dual;
- 13 年 1 月 1 日
- 01-01-2013
- ORA 错误
- 1 月 13 日
答案:C。参数’01-JAN-13’和格式模型应该用“,”隔开。
34. 以下语句中的 [fmt] 参数正确的是什么?
TO_DATE ([日期作为字符串],[格式])
- fmt 可以用双引号和单引号编写。
- 在这个函数中 fmt 的大小写无关紧要
- [fmt] 参数有一个 ‘fm’ 元素,它删除空格并抑制前导零。
- fmt 可以包含任何字符或数字
答案:C。
35、Oracle DB中FM修饰符的缩写是什么?
- 第一步
- 过滤模式
- 填充模式
- 第一模式
答案:C。格式模型“fm”代表填充模式。
36、Oracle DB中FX修饰符的缩写是什么?
- 第一个表达式
- 填充表达式
- 第一个额外
- 格式准确
答案:D . 格式模型“fm”代表格式精确。
37. 在下面的语句中,Oracle DB 将分配给 Month 元素的最大显示位置是多少?
SELECT TO_CHAR (sysdate, 'fmMonth') FROM dual;
- 5
- 6
- 7
- 9
答案:D。Month最长的单词是“September”,因此 Oracle 根据 9 位填充来显示 Month 参数。
38. 以下关于 Oracle DB 中的 FM 修饰符的说法正确的是?
- 此修饰符抑制后续字符元素(如 MONTH)中的空白填充
- 此修饰符抑制后续元素数量的前导零,例如 MI
- 此修饰符对日期格式没有影响
- 对于与函数 TO_CHAR 一起使用的所有日期格式,此修饰符是必需的
答案:A、B。
39. Oracle DB 中的 DATE 格式模型中未使用 FM 修饰符时会发生什么情况?
- 字符元素的结果左填充空白到可变长度
- 字符元素的结果右填充空格到固定长度
- 字符元素的结果中不返回前导零
- 如果使用 FM 修饰符,则返回值的长度是固定的
答案:B。
40. 使用 FM 修饰符时,TO_CHAR 函数的数字格式元素中的数字结果如何在输出缓冲区中对齐?
- 正确的
- 剩下
- 中心
- 以上都不是
答案:B . FM 修饰符抑制添加到数字左侧的空格。
41. 以下查询的结果是什么?
SELECT TO_CHAR (TO_DATE('01-JAN-13'), 'fmDD Month YYYY') FROM dual;
- 2013 年 1 月 1 日
- 2013 年 1 月 1 日
- 2013 年 1 月 1 日
- 1 月 13 日
答案:B . TO_CHAR 根据给定的格式模型格式化输入日期。
42. 以下查询的 ‘DD’ 将添加多少个空格?
SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'fmDD Month YYYY') FROM dual;
- 0
- 1
- 2
- 3
答案:A . FM 修饰符从日期格式中删除所有填充的空格。
43. 以下查询的结果是什么?
SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'fmDdspth "of" Month YYYY fmHH:MI:SS AM') FROM dual;
- 由于在日期格式中使用了双引号,它会返回 ORA 错误
- 2013 年 1 月 1 日
- 2013 年 1 月 1 日上午 12:00:00
- 2013 年 1 月 1 日上午 12:00:00
答案:D . TO_CHAR 根据给定的格式格式化输入日期“01-JAN-13”。
44. 以下哪一项指定了 TO_DATE 函数的字符参数和日期格式模型的精确匹配?
- 迄今为止
- TO_CHAR
- 调频
- 外汇
答案:D。
45. Oracle DB 中的 FX 修饰符正确的是什么?
- 区分大小写
- 与提到的日期格式模型匹配时,它会忽略字符参数中的空格
- 字符参数中的标点符号和引用文本不一定与格式模型匹配
- 以上都不是
答案:D。
46. 以下查询的结果是什么?
SELECT TO_DATE ('January 21, 2013', 'fxMonth DD, YYYY') FROM dual;
- 它将成功执行
- 它将给出结果 2013 年 1 月 21 日
- 它会产生一个 ORA 错误
- 它将给出结果 2013 年 1 月 21 日
答案:C。如果使用 FX,字符参数应该与格式模型完全匹配。这里一月之后的额外空格不匹配。
47. Oracle DB 中的 FX 修饰符正确的是什么?
- 它可以与 TO_CHAR 一起使用
- 它可以与 TO_CHAR 和 TO_DATE 一起使用
- 它只能与 TO_DATE 一起使用
- 以上都不是
答案:C . FX 格式修饰符只能与 TO_DATE 函数一起使用。
48. 假设 SYSDATE 是 01-JAN-13,以下查询的结果是什么?
SELECT TO_CHAR (SYSDATE, 'DDTH') FROM dual;
- 1 月 1 日
- 第一
- 1 ST
- 01ST
答案:D。
49. 假设 SYSDATE 是 01-JAN-13,以下查询的结果是什么?
SELECT TO_CHAR (SYSDATE, 'fmDDTH') FROM dual;
- 1 月 1 日
- 第一
- 1ST
- 01ST
答案:C。
50. 假设 SYSDATE 是 01-JAN-13 并且落在星期二,以下查询的结果是什么?
SELECT TO_CHAR (SYSDATE, 'fmDay')||''''s Meeting' FROM dual;
- 周二
- 周二
- 周二的会议
- 周二的会议
答案:D。
51. 以下查询的结果是什么?
SELECT TO_DATE('01 / JAN / 13','DD-MON-YY') FROM dual;
- ORA错误
- 2013 年 1 月 1 日
- 13 年 1 月 1 日
- 13 年 1 月 1 日
答案:D。
52. 以下查询的结果是什么?
SELECT TO_DATE('01 ## JAN / 13','DD-MON-YY') FROM dual;
- ORA错误
- 2013 年 1 月 1 日
- 13 年 1 月 1 日
- 13 年 1 月 1 日
答案: A.在日期之间使用单个分隔符。
53. 以下查询的结果是什么?
SELECT TO_DATE('01/JAN/13','fxDD-MON-YY') FROM dual;
- 2013 年 1 月 1 日
- ORA错误
- 13 年 1 月 1 日
- 13 年 1 月 1 日
答案:B.使用格式精确修饰符,输入文字必须与格式字符串匹配。
54. 以下查询的结果是什么?
SELECT TO_DATE('01-JAN-13','fxDD-MON-YY') FROM dual;
- 2013 年 1 月 1 日
- ORA错误
- 13 年 1 月 1 日
- 13 年 1 月 1 日
答案:C。
55. 以下查询的结果是什么?
SELECT TO_DATE ('11-JAN-2013','fxDD-MON-YYYY') FROM dual;
- 2013 年 1 月 11 日
- 11-01-13
- 2013 年 1 月 11 日
- ORA错误
答案:C。
56. 一名员工 Allen 于 1 月 -13 日被聘用。以下查询的结果是什么?(假设会话的 NLS 参数设置为 DD-MON-YY)
SELECT TO_DATE(hire_date, 'fxfmDD-MON-YY') FROM 员工 WHERE first_name='ALLEN';
- ORA错误
- 2013 年 1 月 1 日
- 1 月 13 日
- 2013 年 1 月 1 日
答案:C。
57. 以下查询的结果是什么?
SELECT TO_CHAR(TO_DATE ('01-JAN-2013'), 'DD-Month-RR') FROM dual;
- 13 年 1 月 1 日
- 01-01-2013
- 13 年 1 月 1 日
- 01-1月-13日
答案:D . 月份修饰符最多填充 9 位空格。
检查 EMPLOYEES 表的结构并回答后面的问题 58 和 59。
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
58. 您需要列出 1990 年之前雇用的所有员工的名字和姓氏。以下哪项 WHERE 语句将给出所需的结果?(假设此列表将在 ’01-JAN-2013′ 上生成)
- WHERE TO_DATE (hire_date, ‘DD-MON-YY’) < ’01-JAN-1990′
- WHERE TO_DATE (hire_date, ‘DD-MON-YYYY’) < ’01-JAN-1990′
- WHERE TO_DATE (hire_date, ‘DD-MON-YY’) < ’01-JAN-90′
- WHERE TO_DATE (hire_date, ‘DD-MON-RR’) < ’01-JAN-1990′
答案:D.使用 RR 格式将考虑 1950 年和 1999 年之间日期的年份部分。
59. 以下哪个是嵌套函数的例子?
-
从员工中选择下层(姓氏);
-
从员工中选择上层(姓氏);
-
SELECT concat (first_name, last_name) FROM 员工;
-
SELECT upper (concat(SUBSTR(first_name,1,6),'_UK')) FROM 员工;
答案:D。一个函数中有多个函数称为函数嵌套。
60. Oracle DB 中的 COALESCE 函数正确的是什么?
- 它只能接受 2 个参数
- COALESCE 函数中的所有参数可以是不同的数据类型
- COALESCE 函数中的所有参数都应该是相同的数据类型
- 以上都不是
答案:C . COALESCE 函数采用两个强制参数和任意数量的可选参数。语法是 COALESCE(expr1, expr2,Ö,exprn),其中 expr1 如果不为 null 则返回,否则 expr2 如果不为 null,依此类推。
61. 下列哪个函数用于条件表达式?
- TO_CHAR
- 合并
- NVL
- 案件
答案:D . CASE 表达式有助于 if-then-else 条件逻辑。CASE 表达式有两种变体。简单的 CASE 表达式将条件搜索项列出一次,并且每个比较表达式都测试与搜索项的相等性。搜索的 CASE 表达式为每个比较表达式列出了一个单独的条件。
62. 以下查询的结果是什么?
SELECT TO_CHAR(TO_DATE('01-JAN-13','DD-MON-YY'),'dy-mon-yyyy') FROM dual;
- 2013 年 1 月 1 日
- 13 年 1 月 1 日
- 13 年 1 月 13 日星期二
- 2013 年 1 月,星期二
答案:D。格式模型“dy”从输入日期开始拼写当天的前三个字母。‘DY’ 将给出“TUE”而不是上面给出的查询中的“tue”。
63. 以下查询的结果是什么?
SELECT TO_CHAR(TO_DATE('01-JAN-13','DD-MON-YY'),'fmDAY-mon-yyyy') FROM dual;
- 2013 年 1 月 1 日
- 13 年 1 月 1 日
- 星期二 -jan-13
- 2013 年 1 月,星期二
答案:D. fmDAY(对于所有大写字母)或 fmday(对于所有小写字母)格式模型将拼写输入日期的日期,没有任何尾随或前导空格。
64. 以下查询的结果是什么?
SELECT TO_CHAR(TO_DATE('19-JUN-13'),'qth') FROM dual;
- 第一
- 第二
- 第三名
- 第四名
答案:B . 格式模型“q”给出给定日期所在的季度。在给定的查询中,APR-JUN 是第二季度。
检查给定的 EMPLOYEES 表的结构并回答后面的问题 65 到 67。
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
65. 一些员工在今年的第二周即 2013 年加入公司 ABC。您需要列出所有这些员工的名字、姓氏和部门 ID。以下哪个查询会为您提供所需的结果?
-
SELECT first_name, last_name, department_id FROM员工 WHERE TO_DATE(hire_date,'w') >2;
-
SELECT first_name, last_name, department_id FROM员工 WHERE TO_DATE(hire_date,'w') 介于 1 和 2 之间;
-
SELECT first_name, last_name, department_id FROM员工 WHERE TO_CHAR(hire_date,'w') <3;
-
SELECT first_name, last_name, department_id FROM员工 WHERE TO_CHAR(sysdate,'ww') =2;
答案:D。格式模型“ww”给出了一年中的第几周。
66. ABC 公司的管理层想知道 2012 年第三季度雇佣了多少员工。以下哪个查询会给出所需的结果?
-
SELECT count(employee_id) FROM 员工 WHERE TO_CHAR(hire_date, 'q') > 1;
-
SELECT count(employee_id) FROM 员工哪里 TO_CHAR(hire_date, 'q') = 3;
-
从员工那里选择员工 ID 在哪里 TO_CHAR(hire_date, 'q') = 3;
-
SELECT count(employee_id ) FROM Employees Where TO_CHAR(hire_date, 'q') 介于 0 和 3 之间;
答案:B . 格式模型“q”给出了一年的季度。
67. 必须向所有在 2008 年之前加入该组织并且仍然是该组织的一部分的员工打印并颁发成就证书。将使用从查询中获取的占位符来打印名字、姓氏和日期。证书应包含拼写的所有数字。示例:星期二,1 月 1 日,2008。证书的最终文本应采用以下形式: 兹证明,2008 年 1 月 1 日星期二加入组织的 first_name last_name 已在公司顺利完成了 5 年的光辉岁月。以下哪个查询将有助于以所需格式打印日期?
-
SELECT TO_CHAR (hire_date, 'fmDay, "the "th of " Month, Yysp.') FROM Employees;
-
SELECT TO_CHAR (hire_date, 'Day,'Mon, Yyyy.' 的“第 ddth”) FROM 员工;
-
SELECT TO_CHAR (hire_date, 'fmDAY,'the "thth " of " Month, Ysp.') FROM员工;
-
SELECT TO_CHAR (hire_date, 'fmDay,'' MONTH, Rsp.' 的“第 dth”) FROM 员工;
答案: A. “sp”标识符用简单的英语拼写年份。
68. 必须生成一份报告,从可用的纸张来源为所有员工创建一个审计历史表。论文来源只有 2011 年雇佣员工时的数据。此数据仅包含雇用日期的年份。您需要将审计历史表中的日期作为该特定年份的 1 月 1 日(不带前导零和空格)。以下哪个条款将达到此要求?
- TO_DATE(‘2011′,’YYYY’)
- TO_CHAR (TO_DATE (‘2011′,’YYYY’),’fmMM/DD/YYYY’)
- TO_CHAR(‘2011′,’DD-MON-YYYY’)
- TO_DATE (’01-01-2011′,’DD-MM-YYYY’)
答案:B。
69. 以下查询的结果是什么?
SELECT TO_NUMBER ('$3000') FROM dual;
- 3000
- 3000 美元
- 空值
- ORA错误
答案:D。查询抛出“ORA-01722: invalid number”的错误,因为给定的字符串不能用数字识别。
70. 以下查询的结果是什么?
SELECT TO_NUMBER('$3,000.67','$999,999.99') FROM dual;
- 3000.67 美元
- 3000
- 3000.67
- ORA 错误,因为输入字符串的字符少于提到的格式模型。
答案:C。适当的格式模型帮助 TO_NUMBER 将给定的字符串转换为数字。
71. 以下查询的结果是什么?
SELECT TO_NUMBER('$3,000,000.67','$999,999.99') FROM dual;
- 3,000,000.67 美元
- 3000,000.67
- 3000.67
- ORA 错误,因为格式模型的字符少于输入字符串。应该是一样的。
答案:D。
72. 下面的查询会产生什么结果?
SELECT TO_NUMBER('456.23','999.99') FROM dual;
- ORA错误
- 456.23
- 456
- 以上都不是
答案:B。
73. 关于嵌套函数,哪些是正确的?
- 嵌套意味着使用一个函数的输出作为另一个函数的输入。
- 嵌套最多可以应用 3 级嵌套。
- 嵌套应用于任何深度级别的多行函数
- 以上都不是
答案: A.函数执行的输出用作其前一个函数的输入。
74. 以下查询的结果是什么?
SELECT NULLIF(1,2-1) FROM dual;
- 0
- 1
- 空值
- 以上都不是
答案:C . NULLIF 函数测试两个项是否相等。如果它们相等,函数返回空值,否则返回测试的两个项中的第一个。这里 1 和表达式“2-1”被 oracle 认为是相等的,因此返回 NULL。
75. 以下查询的结果是什么?
SELECT NULLIF('01-JAN-2013','01-JAN-13') FROM dual;
- 1 月 13 日
- 2013 年 1 月 1 日
- 空值
- ORA错误
答案:B。由于两个日期的长度不同,返回第一个参数。
76、Oracle DB中COALESCE函数中必选参数与可选参数的比例是多少?
- 0:1
- 1:2
- 2:任意数量
- 以上都不是
答案:C . COALESCE 函数采用两个强制参数和任意数量的可选参数。OALESCE 是 NVL 函数的一般形式,如以下两个方程所示: COALESCE(expr1,expr2) = NVL(expr1,expr2), COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3) )。
77. 以下哪些等式是正确的?
- COALESCE(expr1,expr2) = NVL(expr1,expr2)
- COALESCE(expr1,expr2) = NVL2(expr1,expr2,expr3)
- COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3))
- 上述所有的
答案:A、C。
78.以下哪个是NVL2的正确语法?
- NVL(原始,ifnotnull)
- NVL2(原始,ifnull,ifnotnull)
- NVL(原始,NULL)
- NVL(original,ifnull) 和 NVL2(original,ifnotnull,ifnull)
答案:D。
79. 以下哪个函数是Oracle 中继承的ANSI 标准关键字?
- 案件
- 解码
- A 和 B
- 以上都不是
回答: A. CASE 是符合 ANSI SQL 的,而不是特定于 Oracle 的。
80. Oracle DB 中的 DECODE 语句正确的是什么?
解码(expr1,comp1,iftrue1,comp2,[iftrue2])
- Comp2 不是可选的
- 如果 expr1 等于 comp1,则返回 comp2
- 如果 expr1 等于 comp1,则返回 iftrue1
- 以上都不是
答案: C。DECODE 函数通过测试前两项是否相等来实现 if-then-else 条件逻辑,如果相等则返回第三项,如果不相等则可选地返回另一项。DECODE 函数至少需要三个强制参数,但可以接受更多。
81. DECODE 函数中的参数正确的是什么?
- 所有参数必须是 VARCHAR2
- 任何表达式都不能作为 DECODE 函数的参数
- 所有参数必须为 NUMBER
- 返回数据类型与第一个匹配的比较项相同。
答案:D . DECODE 函数通过测试前两项是否相等来实现 if-then-else 条件逻辑,如果相等则返回第三项,如果不相等则可选地返回另一项。
82. 以下查询的结果是什么?
SELECT DECODE (null,null,'expr3') FROM dual;
- 空值
- 0
- 表达式3
- ORA错误
答案:C. DECODE 认为两个 NULL 值是等价的。Oracle中NULL的异常之一。
83. 以下查询的结果是什么?
SELECT DECODE ('elephant','rat','lion','tiger','cat','squirrel','elephant','koala','rat','And it continue') FROM dual;
- 大象
- 鼠
- 考拉
- 它继续
答案:D . DECODE 函数至少需要三个强制参数,但可以接受更多。
84. Oracle DB 中 CASE 表达式的最少必需参数数量是多少?
- 0
- 1
- 2
- 3
答案:D . CASE 表达式有助于 if-then-else 条件逻辑。CASE 表达式有两种变体。简单的 CASE 表达式将条件搜索项列出一次,并且每个比较表达式都测试与搜索项的相等性。搜索的 CASE 表达式为每个比较表达式列出了一个单独的条件。它至少需要 3 个强制性参数,但也可能需要更多。
85. 以下哪个关键字组合用于在 Oracle DB 中包含 CASE 语句?
- CASEÖEND IF;
- 如果结束,如果;
- 凯斯奥;
- 案例结束;
答案:D。
86. 如果 CASE 语句中的 ELSE 块未定义,则在为假值的情况下返回以下哪个值?
- 0
- 空值
- 0 或 NULL
- 以上都不是
答案:B。
87. 如果 CASE 语句中存在多个 WHEN..THEN 级别,以下哪个选项是正确的?
- CASE 只搜索或比较第一个级别并且存在而不检查 WHENÖTHEN 的其他级别。
- CASE 语句将搜索 WHENÖTHEN 的所有级别,直到找到匹配项。
- A 和 B
- 以上都不是
答案:B。
88. CASE 语句中的搜索、比较和结果参数可以是哪些数据类型?
- VARCHAR2
- 日期
- 数字
- 列值、文字和表达式
答案:D。
89、CASE 语句不能用于Oracle SQL 查询的以下哪个部分?
- 选择
- 这些选项都没有
- 在哪里
- 订购者
答案:B。
90. 检查给定的 EMPLOYEES 表的结构。
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
Oracle DB 中以下查询的结果是什么?
选择名字,薪水, CASE Department_id WHEN 100 然后“帐户” 当 101 然后是“人力资源” 当 102 然后“销售” ELSE '未知' 结尾 来自员工;
- 由于不能在 CASE 语句中写入多个 WHENÖTHEN 语句,因此会产生 ORA 错误。
- 它将显示部门 ID 为 100,101,102
- 它只会在出现部门 ID 100 的地方显示“帐户”,而忽略其余命令。
- 以上都不是
答案:D . CASE 表达式有助于 if-then-else 条件逻辑。CASE 表达式有两种变体。简单的 CASE 表达式将条件搜索项列出一次,并且每个比较表达式都测试与搜索项的相等性。搜索的 CASE 表达式为每个比较表达式列出了一个单独的条件。
91. Oracle DB 中的 CASE 语句最多可以有多少个 WHENÖTHEN 级别?
- 无限
- 1000
- 216
- 255
答案:D。
92. 以下查询的结果是什么?
选择 NVL2( NULLIF ('宝马','奥迪'), '现代', '法拉利' ) 从双;
- 宝马
- 法拉利
- 空值
- 现代
答案:D . NVL2 功能提供了对 NVL 的增强,但用途非常相似。它评估任何数据类型的列或表达式是否为空。如果第一项不为空,则返回第二个参数,否则返回第三个参数。
93. 假设 SYSDATE 是 01-JAN-13 ,下面的查询会产生什么结果?
SELECT TO_CHAR (sysdate, 'fmddth" of" Month YYYY') FROM dual;
- 2013 年 1 月 1 日
- 2013 年 1 月 1 日
- 2013 年 1 月 1 日
- 2013 年 1 月 1 日
答案:D。 “th”格式模型将日期的日期指定为“st”或“th”。
94. 以下查询的结果是什么?
SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'MmSP Month Yyyysp') FROM dual;
- 一月二千十三
- 一月二千十三
- 一月二千十三
- 以上都不是
答案:C。
95. 以下查询的结果是什么?
SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'DD-MON-YYYY hh24SpTh') FROM dual;
- 一月二千十三
- 一月二千十三
- ORA错误
- 01-JAN-2013 零
答案:D.可以使用“SpTh”格式修饰符拼出时间戳组件。
96. 哪些函数的作用类似于 SQL 语句中的 if-then-else 逻辑?
- TO_CHAR
- TO_NUMBER
- A 和 B
- 案件
答案:D . CASE 表达式有助于 if-then-else 条件逻辑。CASE 表达式有两种变体。简单的 CASE 表达式将条件搜索项列出一次,并且每个比较表达式都测试与搜索项的相等性。搜索的 CASE 表达式为每个比较表达式列出了一个单独的条件。
97. 检查给定的 EMPLOYEES 表的结构。
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
以下 SQL 查询的结果是什么?
SELECT DECODE (salary,10000) FROM 员工;
- 10000
- 空值
- 0
- ORA错误
答案:B . DECODE 函数通过测试前两项是否相等来实现 if-then-else 条件逻辑,如果相等则返回第三项,如果不相等则可选地返回另一项。DECODE 函数至少需要三个强制参数,但可以接受更多。如果省略 DECODE 函数中的默认值,则返回 NULL。
98. 您需要将 Oracle DB 会话的时间显示到小数秒的小数点后 3 位。以下哪个查询将提供所需的输出?
-
SELECT TO_CHAR(sysdate, 'DD-MON-YY HH24:MI:SS.FF') FROM dual;
-
SELECT TO_CHAR(sysdate, 'DD-MON-YY HH24:MI:SS') FROM dual;
-
SELECT TO_CHAR(sysdate, 'DD-MON-YY HH24:MI:SS.FF3') FROM dual;
-
SELECT TO_CHAR(sysdate, 'DD-MON-YY') FROM dual;
答案:C . HH:MI:SS 格式的 FF [1..9] 扩展在小数秒中产生最多 1..9 位的小数秒。
99. 以下哪些标点符号可以与 Oracle DB 中的日期和时间一起使用?
- #
- @
- ,
- :
答案:C、D。
100. 检查给定的 EMPLOYEES 表的结构。
SQL> DESC 员工 姓名为空?类型 ----------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME 非空 VARCHAR2(25) 电子邮件非空 VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE 非空日期 JOB_ID 非空 VARCHAR2(10) 薪金号码(8,2) COMMISSION_PCT 编号(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)
您需要找到员工 Jaimie Patrick 被公司“ABC”聘用的一年中的哪一天。以下哪个查询将提供所需的输出?
-
SELECT TO_CHAR(hire_date, 'DDD') FROM Employees WHERE last_name = 'Patrick' AND first_name = 'John';
-
SELECT TO_CHAR(hire_date, 'YYYY') FROM Employees WHERE last_name = 'Patrick' AND first_name = 'John';
-
SELECT TO_CHAR(hire_date, 'DD-MON-YYYY') FROM Employees WHERE last_name = 'Patrick' AND first_name = 'John';
-
SELECT TO_CHAR(hire_date, 'DD-MON-RR') FROM 员工 WHERE last_name = 'Patrick' AND first_name = 'John';
答案: A.格式模型“DDD”返回给定日期所属的年份中的哪一天。
101. 需要生成一份报告,提供从 2013 年 6 月 1 日午夜开始的所有批次运行的时间。这些时间的精度应在午夜后的秒数内。以下哪些条款将满足要求?
- TO_CHAR(系统日期,’HH24:MI:SS’)
- TO_CHAR(系统日期,’HH24:MI:SS.FF’)
- TO_CHAR(系统日期,’HH24:MI:SSSS’)
- TO_CHAR(系统日期,’HH24:MI:SS.FF3’)
答案:C. ‘SSSS’ 格式模型给出午夜后的秒数。