转换函数问题

转换函数问题


1. 以下查询的结果是什么?

SELECT ROUND(144.23,-1) FROM dual;
  1. 140
  2. 144
  3. 150
  4. 100

答案:A . ROUND 函数会根据指定的精度 -1 对值 144.23 进行四舍五入并返回 140。

检查给定的 EMPLOYEES 表的结构并回答后面的问题 2 和 3。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

2. 您当前位于新泽西州并已连接到圣地亚哥的远程数据库。您发出以下命令。

SELECT ROUND (sysdate-hire_date,0) FROM employees WHERE (sysdate-hire_date)/180 = 2;

这个查询的结果是什么?

  1. 一个错误,因为 ROUND 函数不能与 Date 参数一起使用。
  2. 由于 WHERE 条件表达式无效而导致的错误。
  3. 根据当前的圣地亚哥日期和时间,自雇员被雇用以来的天数。
  4. 根据当前新泽西州的日期和时间,自雇员被雇用以来的天数。

答案:C . SYSDATE 函数将获取它远程连接的数据库的当前时间。您必须执行基本的算术运算来调整时区。

3. 您需要显示名字中带有字母“s”且姓氏第二位带有字母“t”的员工的姓名。哪个查询会提供所需的输出?

  1. SELECT first_name, last_name FROM employees WHERE INSTR(first_name,'s') <> 0 AND SUBSTR(last_name,2,1) = 't';
  2. SELECT first_name, last_name FROM employees WHERE INSTR(first_name,'s') <> '' AND SUBSTR(last_name,2,1) = 't';
  3. SELECT first_name, last_name FROM employees WHERE INSTR(first_name,'e') IS NOT NULL AND SUBSTR(last_name,2,1) = 't';
  4. SELECT first_name, last_name FROM employees WHERE INSTR(first_name,'e') <> 0 AND SUBSTR(last_name,LENGTH(first_name),1) =  
    't';

答案: A. INSTR 函数返回给定字符在所需字符串中的位置。SUBSTR 函数从给定的开始和结束位置返回字符串中的字符集。

4. 下列关于 COUNT 函数的说法正确的是?

  1. COUNT (*) 计算任何数据类型列中的重复值和 NULL 值。
  2. COUNT 函数不能用于 DATE 数据类型。
  3. COUNT (DISTINCT job_id) 返回不包括 job_id 列中包含重复项和 NULL 值的行的行数。
  4. 使用带有 DISTINCT 关键字的 COUNT 函数的 SELECT 语句不能有 WHERE 子句。

答案: A. COUNT(*) 函数返回表中满足 SELECT 语句条件的行数,包括重复行和任何列中包含空值的行。如果 SELECT 语句中包含 WHERE 子句,则 COUNT(*) 返回满足 WHERE 子句中条件的行数。相反,COUNT(expr) 返回由 expr 标识的列中的非空值的数量。COUNT(DISTINCT expr) 返回由 expr 标识的列中的唯一非空值的数量。

5、以下哪个命令用于统计Oracle数据库中的行数和非NULL值?

  1. 非空
  2. 指令
  3. 子字符串
  4. 数数

答案:D . COUNT (ALL column_name) 用于计算排除 NULL 的行数。类似地,COUNT(*) 用于计算包括 NULL 在内的列值。

6. 下面给出的查询的结果是什么?

SELECT 100+NULL+999 FROM dual;
  1. 100
  2. 999
  3. 无效的
  4. 1099

答案:C.任何带有 NULL 的算术运算都会导致 NULL。

7. 关于单行函数,下列哪些说法是正确的?

  1. 他们只接受一个参数。
  2. 它们只能嵌套到两层。
  3. 参数只能是列值或常量。
  4. 它们可以返回与引用不同的数据类型值。

答案:D。单行函数可以接受多个参数,并且返回类型可以与输入的数据类型不同。

8. 以下哪个查询会将值 1680 格式化为 $16,80.00?

  1. SELECT TO_CHAR(1680.00,'$99G99D99') FROM dual;
  2. SELECT TO_CHAR(1680.00,'$9,999V99') FROM dual;
  3. SELECT TO_CHAR(1680.00,'$9,999D99') FROM dual;
  4. SELECT TO_CHAR(1680.00,'$99G999D99') FROM dual;

答案:A、D。格式模型 $99G999D99 将给定的数字格式化为数字、组分隔符和小数。其他格式元素可以是前导零、小数点位置、逗号位置、本地货币、科学记数法和符号。

9. 确定以下查询的输出。

SELECT RPAD(ROUND('78945.45'),10,'*') FROM dual;
  1. 78945*****
  2. **78945.45
  3. 函数 RPAD 不能与其他函数嵌套
  4. 78945.45****

答案: A. LPAD(string, num, char) 和 RPAD(string, num, char) 函数在给定字符串的左侧或右侧添加一个字符,直到填充后达到指定的长度 (num)。ROUND 函数将值 78945.45 舍入到 78945,然后用“*”填充它,直到达到 10 的长度。

10. 以下哪个命令允许您在 SQL 查询中遇到 NULL 或非 NULL 值时替换值?

  1. NVL
  2. NVLIF
  3. NVL2
  4. 神经网络

答案:C . NVL2 函数至少接受三个参数。NVL2 函数检查第一个表达式。如果它不为空,则 NVL2 函数返回第二个参数。如果第一个参数为空,则返回第三个参数。

11. Oracle DB 中不能合并以下哪种类型的单行函数?

  1. 特点
  2. 数字
  3. 转换
  4. 以上都不是

答案:D。Oracle DB 中可以合并字符、数字、日期、转换和杂项等单行函数以及程序员编写的类型。

12. 下列子句中,单行函数可以用在哪些地方?

  1. 选择
  2. 在哪里
  3. 订购者
  4. 上述所有的

答案:D.单行函数可用于SELECT 语句、WHERE 子句和ORDER BY 子句。

13. 关于 Oracle DB 中的 NVL 函数,正确的是什么?

  1. NVL 的语法是 NVL (exp1, exp2),其中 exp1 和 exp2 是表达式。
  2. 如果表达式 exp1 为 NULL,则 NVL (exp1, exp2) 将返回 exp2 的值。
  3. 如果 exp1 不是 NULL,NVL (exp1, exp2) 将返回表达式 exp2 的值。
  4. 如果表达式 exp2 为 NULL,则 NVL (exp1, exp2) 将返回 exp1。

答案:B. NVL 函数用替代值替换空值。数据类型为日期、字符和数字的列可以使用 NVL 来提供替代值。列及其替代项的数据类型必须匹配。

14. 检查给定的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

以下查询的结果是什么?

SELECT last_name, NVL(job_id, 'Unknown') 
FROM employees
WHERE last_name LIKE 'A%'
ORDER BY last_name;
  1. 它会在执行时抛出 ORA 错误。
  2. 它将列出 EMPLOYEES 表中所有员工的工作 ID。
  3. 它将列出所有员工的工作 ID,并用文字“未知”替换 NULL 工作 ID。
  4. 它将显示所有员工的姓氏及其工作 ID,包括工作 ID 中的 NULL 值。

答案:C . NVL 函数用替代值替换空值。数据类型为日期、字符和数字的列可以使用 NVL 来提供替代值。列及其替代项的数据类型必须匹配。

15. 以下查询的结果是什么?

SELECT NVL (NULL,'1') FROM dual;
  1. 无效的
  2. 1
  3. 0
  4. 由于无法为 NVL 函数显式指定 NULL,因此出现错误

答案:B . NVL 将 NULL 视为一个值并返回替代参数 1 作为结果。

16. 以下查询的结果是什么?(考虑给定的 EMPLOYEES 表的结构)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SELECT employee_id , NVL(salary, 0) FROM employees WHERE first_name like 'P%' ORDER BY first_name;
  1. 对于名字以“P”开头的所有员工,它将在工资列中显示 0
  2. 它将显示姓名以“P”开头的员工的薪水,如果薪水为 NULL,则显示为 0。
  3. 它会抛出一个 ORA 错误,因为 ORDER BY 子句也应该包含工资列。
  4. NVL函数应正确用作NVL(0,salary)

答案:B. NVL 函数用替代值替换空值。数据类型为日期、字符和数字的列可以使用 NVL 来提供替代值。列及其替代项的数据类型必须匹配。

17. 下列关于 NVL 声明的说法中,哪些是正确的?

SELECT NVL (arg1, arg2) FROM dual;
  1. 这两个表达式 arg1 和 arg2 只能采用 VARCHAR2 或 NUMBER 数据类型格式。
  2. 参数 arg1 和 arg2 应具有相同的数据类型
  3. 如果 arg1 是 VARCHAR2,则 Oracle DB 在比较它们之前将 arg2 转换为 arg1 的数据类型,并在 arg1 的字符集中返回 VARCHAR2。
  4. NVL 函数不能与 DATE 数据类型的参数一起使用。

答案:C。如果 arg1 是 VARCHAR2 数据类型,Oracle 对 arg2 id arg2 是 NUMBER 数据类型进行隐式类型转换。在所有其他情况下,两个参数必须具有相同的数据类型。

18. 以下查询的结果是什么?(考虑给定的 EMPLOYEES 表的结构)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SELECT NVL2(job_id,'Regular Employee','New Joinee') FROM employees;
  1. 它将为所有具有 NULL 工作 ID 的员工返回值“Regular Employee”
  2. 它将为所有具有 NULL 工作 ID 的员工返回值“New Joinee”
  3. 如果作业 ID 为 NULL,它将返回“Regular Employee”
  4. 它会在执行时抛出 ORA 错误。

答案:B . NVL2 函数检查第一个表达式。如果第一个表达式不为空,则 NVL2 函数返回第二个表达式。如果第一个表达式为空,则返回第三个表达式。

19、下列说法正确的是。

NVL2 (arg1, arg2, arg3)
  1. Arg2 和 Arg3 可以有任何数据类型
  2. Arg1 不能有 LONG 数据类型
  3. Oracle 会根据 Arg1 转换 expr2 的数据类型
  4. 如果 Arg2 是 NUMBER,则 Oracle 确定数字优先级,将另一个参数隐式转换为该数据类型,并返回该数据类型。

答案:D . arg2 和 arg3 参数的数据类型必须兼容,不能是 LONG 类型。它们必须是相同的类型,或者必须可以将 arg3 转换为 arg2 参数的类型。NVL2函数返回的数据类型与arg2参数相同。

20. 检查给定的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

下面提到的查询的结果是什么?

SeLECT first_name, salary, NVL2(commission_pct,  salary + (salary * commission_pct), salary) "Income" 
FROM employees 
WHERE first_name like 'P%'  
ORDER BY first_name;
  1. 如果员工的佣金不为空,则将退还工资。
  2. 如果员工的佣金不为空,则将返回 Commission_pct。
  3. 如果员工赚取佣金,则将返回名字以“P”开头且薪水+(salary*commission_pct) 的员工。
  4. 查询抛出错误,因为 NVL2 中写入了数学表达式。

答案:C . NVL2 函数检查第一个表达式。如果第一个表达式不为空,则 NVL2 函数返回第二个表达式。如果第一个表达式为空,则返回第三个表达式。

21. Oracle DB 中的 NULLIF 函数正确的是什么?

  1. 如果两个表达式都不是 NULL,则 NULLIF(expr1,expr2) 将返回 expr2。
  2. 如果两个表达式都为 NULL,则 NULLIF(expr1,expr2) 将返回 0。
  3. 如果两个表达式相等,则 NULLIF(expr1,expr2) 将返回 NULL。
  4. Expr1 在 NULLIF(expr1, expr2) 中可以为 NULL

答案:C . NULLIF 函数测试两个项是否相等。如果它们相等,函数返回空值,否则返回测试的两个项中的第一个。NULLIF 函数采用任何数据类型的两个必需参数。语法为 NULLIF(arg1,arg2),其中比较参数 arg1 和 arg2。如果它们相同,则返回 NULL。如果它们不同,则返回 arg1。

22. 选择下面显示的陈述后给出的正确答案。

NULLIF (arg1,arg2) 
  1. Arg1 和 Arg2 可以是不同的数据类型。
  2. Arg1 和 Arg2 必须相等才能在 NULLIF 函数中使用。
  3. 如果在 NVL 和 NVL2 的情况下使用 NULLIF,则没有数据类型的内部转换。
  4. 这等效于 CASE WHEN Arg1 = Arg22 THEN NULL ELSE Arg1 END。

答案:D。

23. 检查给定的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

您需要根据 HR 模式创建一份报告,显示自受聘以来已更换工作的员工。您执行下面给出的查询。

SELECT e.last_name, NULLIF(e.job_id, j.job_id,"Old Job ID")  
FROM employees e, job_history j  
WHERE e.employee_id = j.employee_id  
ORDER BY last_name;

上面给出的查询的结果是什么?

  1. 当新作业 ID 为 NULL 时,它将显示旧作业 ID。
  2. 它将成功执行并产生所需的输出。
  3. 如果新作业 ID 等于旧作业 ID,它将显示新作业 ID
  4. 它会在执行时抛出 ORA 错误。

答案:B。

24. 下列哪一项不是函数的性质?

  1. 对数据进行计算
  2. 转换列数据类型
  3. 修改单个数据项
  4. 以上都不是

答案:D.函数可以执行计算、大小写转换和类型转换。

25. 单行函数最适合什么?

  1. 他们不返回任何值
  2. 它们每行返回一个结果并对表的所有行进行操作。
  3. 他们用输入参数每行返回一个结果
  4. 它们为每组行返回一个结果并对多行进行操作。

答案:B.单行函数总是每行返回一个结果,并且只对单行进行操作;因此,它们被命名为“单排”。

26. 以下哪一种是Oracle SQL 函数的类型?

  1. 多行函数
  2. 单列函数
  3. 单值函数
  4. 多列功能

答案: A.基本上有两种类型的功能 – 单行和多行功能。

27. 下列哪一种是单行函数?

  1. VARCHAR2
  2. 特点
  3. NULLIF

答案:B。字符、日期、转换、常规、数字是单行函数的类型。

28. 多行函数最合适的是什么?

  1. 它们每行返回多个值。 
  2. 它们为每组行返回一个结果,并且可以操作多组行。 
  3. 它们每行返回一个结果,并且可以操作多组行。 
  4. 它们为每组行返回多个值。

答案:B.多行函数总是作用于一组行并且每组行返回一个值。

29. 以下哪些也称为群函数?

  1. 单行函数
  2. 多组功能
  3. 多行功能
  4. 单组功能。

答案:C.组函数与多行函数和聚合函数相同。

30. 以下关于单行函数的说法正确的是?

  1. 它们可以嵌套
  2. 它们接受参数并返回多个值。
  3. 他们不能修改数据类型
  4. 他们不能接受表达式作为参数。

答案:A.单行函数可以嵌套到多个级别。

31. Single Row 函数接受的参数数量是多少?

  1. 0
  2. 只有1个
  3. 只有 2
  4. 1个或多于1个

答案:D.单行函数可以接受一个或多个参数,具体取决于它们所服务的目标。

32. 以下哪项可以作为单行函数的参数?

  1. 数据类型
  2. SELECT 语句
  3. 表达
  4. 表名

答案:C。用户提供的常量、变量值、列值和表达式是单行函数的参数类型。

33. 关于字符函数,哪些是正确的?

  1. 他们只返回字符值
  2. 他们接受 NUMBER 值
  3. 它们接受字符参数并且可以返回字符和数字值
  4. 他们接受所有数据类型的值

答案:C。字符函数 INSTR 接受一个字符串值,但返回字符串中字符的数字位置。

34. 什么是数字函数?

  1. 它们同时返回 Character 和 Number 值
  2. 他们不能接受表达式作为输入
  3. 数字函数不能嵌套。
  4. 它们接受 Number 参数并只返回 Number 值。

答案:D。

35.下列哪项是DATE类型单行函数返回值的异常?

  1. 迄今为止
  2. 系统日期
  3. MONTHS_BETWEEN
  4. TO_NUMBER

答案:C。除 MONTHS_BETWEEN 返回数字外,所有 DATE 数据类型函数都将 DATE 作为返回值返回。

36. 下列哪一项不是转换类型的单行函数?

  1. TO_CHAR
  2. 迄今为止
  3. NVL
  4. TO_NUMBER

答案:C.转换函数将值从一种数据类型转换为另一种数据类型。NVL 函数用替代值替换空值。

37. 以下哪个是大小写转换功能?

  1. 康卡特
  2. 子字符串
  3. 初始化
  4. 代替

答案: C。CONCAT、SUBSTR 和REPLACE 是字符操作字符函数,而INITCAP、LOWER 和UPPER 是大小写转换字符函数。

38. 以下查询的结果是什么?

SELECT lower('HI WORLD !!!')  FROM dual;
  1. 你好世界 !!!
  2. 你好世界 !!!
  3. 你好世界 !!!
  4. 你好世界 !!!

答案:C . LOWER 函数将字符串转换为小写字符。

39. 以下查询的结果是什么?

SELECT lower(upper(initcap('Hello World') )) FROM dual;
  1. 你好世界
  2. 你好世界
  3. 你好世界
  4. 你好世界

答案:C.大小写转换字符可以嵌套在 SELECT 查询中。


检查给定的 EMPLOYEES 表的结构并回答后面的问题 40 到 42。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

40. 以下哪个查询会给出与下面给出的查询相同的结果?

SELECT CONCAT(first_name, last_name) FROM employees;
  1. 从员工中选择名字||姓氏;
  2. 选择名字||’ ‘ || 姓氏来自员工;
  3. SELECT last_name||’, ‘||first_name FROM员工;
  4. SELECT first_name||’,’||last_name FROM员工;

答案: A. CONCAT 函数连接两个字符串,中间没有任何空格。

41. 以下查询的结果是什么?

SELECT 'The job id for '||upper(last_name) ||' is a '||lower(job_id) FROM employees;
  1. ABEL 的作业 ID 是 sa_rep
  2. ABEL 的作业 ID 是 sa_rep
  3. abel 的作业 ID 是 SA_REP
  4. abel 的作业 ID 是 sa_rep

答案:A。

42. 假设员工的姓氏在表员工中是正确的,那么以下查询的结果是什么?

SELECT employee_id, last_name, department_id  FROM employees WHERE last_name = 'smith';
  1. 它将显示姓氏为 Smith 的员工的详细信息
  2. 它不会给出任何结果。
  3. 它将在所有小写字母中提供姓氏为“Smith”的员工的详细信息。
  4. 在所有 INITCAP 案例中,它将提供姓氏为“Smith”的员工的详细信息。

答案:B.如果雇员表中的姓氏大小写正确,则条件 WHERE last_name = ‘smith’ 将不成立,因此不会显示任何结果。

43. Oracle DB 中的 CONCAT 函数正确的是什么?

  1. 它只能有字符作为输入。
  2. 它只能有 2 个输入参数。
  3. 它可以有 2 个或更多的输入参数
  4. 默认情况下,它通过在连接的字符串之间放置一个空格来连接值。

答案:B . CONCAT 函数只接受两个 NUMBER 或 VARCHAR2 数据类型的参数。

44. Oracle DB 中的 SUBSTR 函数正确的是什么?

  1. 它提取一个确定长度的字符串
  2. 它将字符串的长度显示为数值
  3. 它找到命名字符的数字位置
  4. 它从字符串的一侧(或两侧)修剪字符

答案: A. SUBSTR(string, x, y) 函数接受三个参数并返回一个字符串,该字符串由从源字符串中提取的字符数组成,从指定的起始位置 (x) 开始。当 position 为正数时,函数从字符串的开头开始计数,找到第一个字符。当 position 为负数时,函数从字符串的末尾开始倒数。

45. 以下查询的结果是什么?

SELECT length('hi') FROM dual;
  1. 2
  2. 3
  3. 1
  4. 你好

答案: A. LENGTH 函数只是给出字符串的长度。

46. Oracle DB 中的 LENGTH 和 INSTR 函数有什么区别?

  1. 当对字符串进行操作时,它们给出相同的结果。
  2. LENGTH 给出特定字符在字符串中的位置
  3. INSTR 给出特定字符在字符串中的位置,而 LENGTH 给出字符串的长度。
  4. LENGTH 和 INSTR 可以互换使用。

答案:C。

47. 检查给定的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

以下查询的结果是什么?

SELECT upper(&jobid) FROM employees;
  1. 这会导致错误,因为替换变量不能与单行函数一起使用
  2. 它会提示用户在每次执行时输入作业 ID,然后以大写形式显示作业 ID
  3. 它给出了表 EMPLOYEES 中存在的 jobid 而不进行任何更改
  4. 它不会要求用户输入作业 ID,而是将表中的所有作业 ID 转换为大写

答案:B.替换变量可以与 UPPER 和 LOWER 函数一起使用。

48. Oracle 数据库中的 DUAL 表有哪些错误?

  1. 它归用户SYS所有,所有用户都可以访问。
  2. 它只包含一列和一行。
  3. DUAL 表的 DUMMY 列中的值为“X”
  4. 当您只想返回一个值一次时,DUAL 表很有用

答案: C。DUAL 表有一个名为 DUMMY 的列和一个值为“X”的行。

49. 以下查询的结果是什么?

SELECT sysdate+4/12 FROM dual;
  1. 查询产生错误。
  2. 以日期为结果的日期的小时数。
  3. Sysdate 算术被忽略。
  4. 返回系统日期作为结果。

答案:B.可以对 Oracle DB 中的日期执行算术运算。

50. 以下查询的结果是什么?

SELECT lower (100+100) FROM dual;
  1. 100
  2. 100+100
  3. ORA错误
  4. 200

答案:D.可以在大小写转换函数中指定算术表达式。

51. 如果 SYSDATE = 20-MAY-13,以下查询的结果是什么?

SELECT upper (lower (sysdate)) FROM dual;
  1. 2013 年 5 月 20 日
  2. ORA 错误,因为 LOWER 和 UPPER 不能接受日期值。
  3. 13 年 5 月 20 日
  4. 13 年 5 月 20 日

答案:C。函数 UPPER 和 LOWER 可以接受日期类型的输入,并且会产生与它们对字符串相同的结果。

52. 以下查询的结果是什么?

SELECT INITCAP (24/6) FROM dual;
  1. 4
  2. 24
  3. 24/6
  4. 没有结果

答案: A.可以在大小写转换函数中指定算术表达式。

53. 检查此处给出的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

您需要显示以字母“A”开头的所有员工的姓氏。以下哪个查询会产生所需的结果?

  1. SELECT INITCAP (last_name||' works as a '||job_id "Job Description" FROM employees WHERE initcap (last_name) like 'A%';
  2. SELECT INITCAP (last_name) ||INITCAP(' works as a: ')|| INITCAP(job_id) "Job Description" FROM employees WHERE initcap (last_name) like 'A 
    %';
  3. SELECT INITCAP (last_name||' works as a '||INITCAP(job_id)) "Job Description" FROM employees WHERE initcap (last_name) = 'A';
  4. SELECT UPPER (LOWER (last_name||' works as a '||job_id)) "Job Description" FROM employees WHERE lower (last_name) = 'A';

答案:A、B。

54. 假设 SYSDATE 是 20-FEB-13,以下查询的结果是什么?

SELECT CONCAT ('Today is :', SYSDATE) FROM dual;
  1. 今天是 : 20-feb-13
  2. 查询抛出不兼容类型参数的错误。
  3. 今天是:20-Feb-13
  4. 今天是:20-FEB-13

答案:D . CONCAT 函数接受所有类型的参数。

55. 以下查询的结果模式是什么?

SELECT CONCAT(first_name, CONCAT (last_name, job_id)) FROM dual;
  1. First_namelast_namejob_id
  2. 名字、姓氏、工作 ID
  3. 错误,因为 CONCAT 不能嵌套
  4. 名字姓氏,工作 ID

答案: A. CONCAT 函数可以与 self 或其他字符函数嵌套。

56. 检查此处给出的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

您需要生成一份报告,其中显示部门 100 中所有员工的名字、姓氏和工资。报告应以“Andy Smith 收入 50000”的形式显示结果。以下哪个查询将提供所需的输出?

  1. SELECT concat (first_name,concat (' ', concat(last_name, concat(' earns ', SALARY)))) Concat_String FROM employees WHERE department_id =  
    100;
  2. SELECT concat (first_name, last_name||' '|| salary) FROM employees WHERE department_id = 100;
  3. SELECT concat (first_name, concat(last_name, ' '))||earns||salary FROM employees WHERE department_id = 100;
  4. SELECT concat (first_name, concat(last_name, 'earns salary') FROM employees WHERE department_id = 100;

答案: A. CONCAT 函数可以与 self 或其他字符函数嵌套。

57. 以下查询将显示什么结果?

SELECT LENGTH('It is a lovely day today!') FROM dual;
  1. 25
  2. 19
  3. 20
  4. 0

答案: A. LENGTH 函数也计算空格、制表符和特殊字符。

58. 您需要显示 COUNTRIES 表中的国家/地区名称。国家名称的长度应大于 5 个字符。以下哪个查询将提供所需的输出?

  1. SELECT country_name FROM countries WHERE LENGTH (country_name)= 5;
  2. SELECT country_name FROM countries WHERE length (country_name)> 5;
  3. SELECT SUBSTR(country_name, 1,5) FROM countries WHERE length (country_name)< 5;
  4. SELECT country_name FROM countries WHERE length (country_name) <> 5;

答案:B . LENGTH 函数可以在 WHERE 子句中使用。

59、LPAD函数对字符串的作用如何?

  1. 它将字符串与列的左侧对齐
  2. 它返回一个用指定数量的字符填充到源字符串右侧的字符串
  3. 它将字符串与列的左侧对齐,将数字字符串与列的右侧对齐
  4. 它返回一个用指定数量的字符填充到源字符串左侧的字符串

答案:D . LPAD(string, length after padding, padding string) 和 RPAD(string, length after padding, padding string) 函数在字符串的左边或右边添加一个填充字符串,直到达到指定长度后填充。

60. 下列关于 LPAD 和 RPAD 功能的选项中哪些是正确的?

  1. 用于填充的字符串仅包括字符。
  2. 用于填充的字符串仅包括文字
  3. 用于填充的字符串不能包含表达式。
  4. 用于填充的字符串包括文字、字符和表达式。

答案:D。

61. LPAD 和 RPAD 函数中输入参数的最大数量是多少?

  1. 1
  2. 2
  3. 3
  4. 0

答案:C. LPAD 和 RPAD 最多使用 3 个参数。如果给出了 2 个参数,则填充由空格发生。

62. 以下查询的结果是什么?

SELECT lpad (1000 +300.66, 14, '*') FROM dual;
  1. *******1300.66
  2. 1300*******
  3. 1300.66
  4. ****1300.66

答案: A.为了使总长度为 14 个字符,返回值 1300.66 在左侧填充了 7 个星号 (*)。

63. 关于 TRIM 功能,正确的是什么?

  1. 类似于 Oracle 中的 SUBSTR 函数
  2. 它从字符文字、列或表达式的开头或结尾删除字符
  3. TRIM 函数不能应用于表达式和 NUMBERS
  4. TRIM 函数只能删除字符串两侧的字符。

答案:B . TRIM 函数从给定的源字符串中从字面上修剪掉前导或尾随(或两者)字符串。TRIM 函数后跟 TRAILING 或 LEADING 关键字时,可以从字符串的一侧或两侧删除字符。

64. 您需要删除出现的字符“.” 以及来自表 MAGAZINE 中一本书的以下书名的双引号 ‘”‘。

"HUNTING THOREAU IN NEW HAMPSHIRE" THE ETHNIC NEIGHBORHOOD."

以下哪个查询会给出所需的结果?

  1. SELECT LTRIM(Title,'"') FROM MAGAZINE;
  2. SELECT LTRIM(RTRIM(Title,'."'),'"') FROM MAGAZINE;
  3. SELECT LTRIM (Title,'"THE') FROM MAGAZINE;
  4. SELECT LTRIM(RTRIM(Title,'."THE'),'"') FROM MAGAZINE;

答案:B . LTRIM 和 RTRIM 函数可以相互组合使用。

65. 以下查询的结果将返回什么?

SELECT INSTR('James','x') FROM dual;
  1. 1
  2. 2
  3. 0
  4. 3

答案:C.当给定字符串中不存在搜索字符串时,INSTR 函数返回 0。

66. 以下查询的结果是什么?

SELECT INSTR('1$3$5$7$9$','$',3,4)FROM dual;
  1. 2
  2. 10
  3. 7
  4. 4

答案:B. INSTR 函数从第 3 位开始搜索第 4 次出现的 ‘$’。

67. 以下查询的结果是什么?

SELECT INSTR('1#3#5#7#9#', -3,2) FROM dual;
  1. #5
  2. #3
  3. #7
  4. #9

答案:D. SUBSTR 函数将从字符串末尾开始搜索 3 个位置,并在正向给出 2 个字符,给出 #9。


检查下面给出的 EMPLOYEES 表的结构,并回答后面的问题 68 和 69。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

68. 您需要根据 EMPLOYEES 表中的 SALARY 列提取一致的 15 个字符的字符串。如果 SALARY 值的长度小于 15 个字符,则必须在该值的左侧添加零以生成 15 个字符的字符串。哪个查询将满足此要求?

  1. SELECT rpad(salary, 15,0) FROM employees;
  2. SELECT lpad(salary,15,0) FROM employees;
  3. SELECT ltrim(salary,15,0) FROM employees;
  4. SELECT trim(salary,15,0) FROM employees;

答案:B . LPAD 和 RPAD 函数在字符串的左边或右边添加一个填充字符串,直到填充后达到指定的长度。

69. 您需要在不使用 LENGTH 函数的情况下显示 EMPLOYEES 表中 FIRST_NAME 列的最后 2 个字符。以下哪个查询可以满足此要求?

  1. SELECT SUBSTR(first_name, 2) FROM employees;
  2. SELECT SUBSTR(first_name, -2) FROM employees;
  3. SELECT RTRIM(first_name, 2) FROM employees;
  4. SELECT TRIM(first_name, 2) FROM employees;

答案:B . SUBSTR(string, x, y) 函数接受三个参数并返回一个字符串,该字符串由从源字符串中提取的字符数组成,从指定的起始位置 (x) 开始。当 position 为正数时,函数从字符串的开头开始计数,找到第一个字符。当 position 为负数时,函数从字符串的末尾开始倒数。

70. 假设 SYSDATE 是 13-JUN-13,以下查询的结果是什么?

SELECT SUBSTR(sysdate,10,7) FROM dual;
  1. 3
  2. N-13
  3. 0
  4. 无效的

答案:D。该查询将给出一个 NULL,因为 SYSDATE 中开始的位置 10 不存在。

71. 以下哪一项用于替换 Oracle DB 中给定字符串中的特定字符?

  1. LTRIM
  2. 修剪
  3. 中转
  4. 代替

答案:D。

72. 以下查询的结果是什么?

SELECT replace(9999.00-1,'8',88) FROM dual;
  1. 999
  2. 9998
  3. 99988
  4. 9999.88

答案: C。REPLACE 函数在 9998 中搜索“8”并将其替换为“88”。

73. 检查此处给出的 EMPLOYEES 表的结构。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

您需要检索名字、姓氏(以空格分隔)和员工的正式名称,其中名字和姓氏的总长度超过 15 个字符。正式名称由名字的第一个字母和姓氏的前 14 个字符组成。以下哪个查询将满足此要求?

  1. SELECT first_name, last_name ,SUBSTR(first_name, 1,1)||' '||SUBSTR(last_name, 1,14) formal_name FROM employees;
  2. SELECT first_name, last_name ,SUBSTR(first_name, 1,14)||' '||SUBSTR(last_name, 1,1) formal_name FROM employees WHERE length 
    (first_name) + length(last_name) < 15;
  3. SELECT first_name, last_name ,SUBSTR(first_name, 1,1)||' '||SUBSTR(last_name, 1,14) formal_name FROM employees WHERE length 
    (first_name) + length(last_name) =15;
  4. SELECT first_name, last_name ,SUBSTR(first_name, 1,1)||' '||SUBSTR(last_name, 1,14) formal_name FROM employees WHERE length 
    (first_name) + length(last_name) > 15;

答案:D。

74. 以下查询的结果是什么?

SELECT round(148.50) FROM dual;
  1. 148.50
  2. 140
  3. 150
  4. 149

答案:D.如果没有小数精度,默认的四舍五入度为 0,源四舍五入到最接近的整数。

75. 假设 sysdate 是 10-JUN-13,以下查询的结果是什么?

SELECT trunc (sysdate,'mon') FROM dual;
  1. 10-JUN-13
  2. 1-JUN-13
  3. ORA 错误,因为 TRUNC 函数在与日期一起使用时不能有输入参数。
  4. 13 年 6 月 31 日

答案:B . 日期被截断到月份的第一天。同样,它也可以在一年内完成。

76. 以下查询的结果是什么?

SELECT trunc(1902.92,-3) FROM dual;
  1. 2000年
  2. 1000
  3. 1901年
  4. 1901.00

答案:B。

77、Oracle DB中MOD函数的语法是什么?

  1. Mod(除数,股息)
  2. MOD(除数,1)
  3. MOD(股息,除数)
  4. 以上都不是

答案:C . MOD 函数用于获得除法运算的余数。

78. 以下查询的结果是什么?

SELECT mod(100.23,-3) FROM dual;
  1. ORA错误
  2. 1.23
  3. 100
  4. 0

答案:B . MOD 函数对正除数和负除数给出相同的答案

79. 以下哪些函数用于区分 Oracle DB 中的偶数或奇数?

  1. 圆形的
  2. 中转
  3. 国防部
  4. 代替

答案:C . MOD 函数可用于检查给定的数字是偶数还是奇数。如果 MOD (num,2) 返回零,则数字 ‘num’ 是偶数。如果 MOD (num,2) 返回 1,则数字 ‘num’ 为奇数。

80. 检查 EMPLOYEES 表的结构,如下所示。

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

您需要以循环方式将前 12 名员工分配到四个团队之一。员工 ID 以 100 开头。以下哪个查询将满足要求?

  1. SELECT * FROM employees WHERE employee_id between 100 and 111 ORDER BY employee_id;
  2. SELECT first_name, last_name, employee_id, mod(employee_id, 4) Team# FROM employees WHERE employee_id between 100 and 111  
    ORDER BY employee_id;
  3. SELECT first_name, last_name,mod(employee_id, 2) Team# FROM employees WHERE employee_ID <> 100;
  4. SELECT first_name, last_name, mod(employee_id, 4) Team# FROM employees WHERE employee_ID = 100;

答案:B。

81. 以下查询的结果是什么?

SELECT SUBSTR('Life is Calling',1) FROM dual;
  1. ORA 错误,因为 SUBSTR 函数应至少有 3 个参数。
  2. 生活在召唤
  3. 无效的
  4. 生活

答案:B.仅使用前两个参数调用 SUBSTR 函数会导致该函数从给定源字符串的开始位置到结尾提取字符串。

82. SQL Developer 中 sysdate 的默认数据格式是什么?

  1. DD-MON-YY
  2. DD-MON-RR
  3. 日/月/日
  4. DD/MON/YYYY

答案:C。对于 SQL*PLUS,默认日期格式是 DD-MON-RR。

83. 假设 SYSDATE 为 10-JUN-2013 12:05pm,执行以下查询后返回什么值?

SELECT add_months(sysdate,-1) FROM dual;
  1. 2013 年 5 月 9 日下午 12:05
  2. 2013 年 5 月 10 日下午 12:05
  3. 2013 年 7 月 10 日下午 12:05
  4. 2013 年 7 月 9 日下午 12:05

答案:B . ADD_MONTHS(date, x) 函数将“x”个日历月添加到给定日期。‘x’ 的值必须是整数并且可以是负数。

84.执行以下语句后会返回什么值?请注意,01-JAN-2013 发生在星期二。

SELECT next_day('01-JAN-2013','friday') FROM dual;
  1. 2013 年 1 月 2 日
  2. 星期五
  3. 2013 年 1 月 4 日
  4. 以上都不是

答案:C . NEXT_DAY(date,’day’) 查找日期之后的下一个指定的星期 (‘day’) 的日期。char 的值可以是表示一天的数字或字符串。

85. ROUND 函数最多可以接受多少个参数?

  1. 0
  2. 1
  3. 2
  4. 3

答案:C。如果只存在一个参数,则舍入到最近的整数

86. 假设当前日期是 02-JUN-2007,DD-MON-RR 格式的日期 24-JUL-2004 将返回什么世纪?

  1. 19
  2. 21
  3. 20
  4. 无效的

答案:C。如果当前年份和指定年份的两位数在 0 到 49 之间,则返回当前世纪。

87. 假设当前日期是 02-JUN-2007,DD-MON-RR 格式的日期 24-JUL-94 将返回哪个世纪?

  1. 19
  2. 21
  3. 20
  4. 无效的

答案: A.如果当前年份的两位数在 0 到 49 之间,并且指定年份在 50 到 99 之间,则返回上一个世纪。

88. 假设当前日期是 02-JUN-1975,DD-MON-RR 格式的日期 24-JUL-94 将返回哪个世纪?

  1. 19
  2. 21
  3. 20
  4. 无效的

答: A.如果当前和指定年份的两位数在 50 到 99 之间,则默认返回当前世纪。

89. 假设当前日期是 02-JUN-1975,DD-MON-RR 格式的日期 24-JUL-07 将返回哪个世纪?

  1. 19
  2. 21
  3. 20
  4. 无效的

答案:C.如果当前年份的两位数在 50 到 99 之间,并且指定年份在 0 到 49 之间,则返回下一个世纪。

90. SYSDATE 函数需要多少个参数?

  1. 1
  2. 2
  3. 4
  4. 0

答案:D . SYSDATE 是 Oracle 中的伪列。

91. Oracle DB 中的 SYSDATE 函数正确的是什么?

  1. 它只返回系统日期
  2. 它至少需要 2 个参数。
  3. 默认格式为 DD-MON-YY
  4. SYSDATE 的默认格式是DD-MON-RR,它根据数据库服务器返回系统的日期和时间。

答案:D。

92. 以下操作的结果的数据类型是什么?


“日期 3 = 日期 1-日期 2”

  1. 日期
  2. 数字1
  3. 0
  4. 无效的

答案:B . 两个日期相减得到天数。

93. 以下操作的结果的数据类型是什么?


“Date2 = Date1-Num1”

  1. 日期
  2. 数字1
  3. 0
  4. 无效的

答案: A.从日期值中减去一个数字会得到日期。

94. Oracle DB 中两个日期之间的差异代表什么?

  1. 他们之间的天数
  2. Oracle DB 中不可能存在日期差异
  3. 一个约会
  4. 无效的

答案:A。

95. 以下查询的结果是什么?

SELECT months_between('21-JUN-13','19-JUN-13') FROM dual; 
  1. ORA错误
  2. 一个正数
  3. 负数
  4. 0

答案:C。如果第一个参数小于第二个参数,则 MONTHS_BETWEEN 返回负数。

96. 如果 MONTHS_BETWEEN (start_date,end_date) 函数的结果是一个分数,可以推导出什么?

  1. 它表示开始日期和结束日期之间的数字差异。
  2. 结果不能是小数,必须是整数。
  3. 无效的
  4. 它表示计算年和月之间的整数差后剩余的天数和时间,并且基于 31 天的月份。

答案:D。

97. 您从印度连接到瑞士的远程数据库。您需要从数据库中找到印度当地时间。以下哪项将给出所需的结果?

  1. SELECT sysdate FROM dual;
  2. SELECT round(sysdate) FROM dual;
  3. SELECT trunc (sysdate) FROM dual;
  4. SELECT current_date FROM dual;

答案:D。

98. 以下查询的结果是什么?

SELECT months_between (to_date ('29-feb-2008'), to_date ('29-feb-2008 12:00:00','dd-mon-yyyy hh24:mi:ss'))*31 FROM dual; 
  1. 大约 0
  2. 1
  3. 查询会抛出 ORA 错误
  4. 0.5 天

答案:D . MONTHS_BETWEEN(date1, date2) 查找 date1 和 date2 之间的月数。结果可以是正面的或负面的。如果 date1 晚于 date2,则结果为正;如果 date1 早于 date2,则结果为负数。结果的非整数部分代表月份的一部分。

99. 以下查询的结果是什么?

SELECT add_months ('31-dec-2008',2.5) FROM dual; 
  1. 2009 年 2 月 31 日
  2. 2009 年 2 月 28 日
  3. 2009 年 3 月 31 日
  4. 2009 年 1 月 15 日

答案:B . 2.5 的小数部分将被忽略,并且 2 个月将被添加到 31-dec-2012,即 31-feb-2013 但由于它不是一个有效日期,结果是 28-feb-2009。

100. 您需要确定支付员工工资的 11 月日期。奖金在 11 月的最后一个星期五支付。以下哪项将满足要求?

  1. SELECT next_day ('30-nov-2012' , 'Friday') FROM dual;
  2. SELECT next_day ('30-nov-2012' , 'Friday') -7 FROM dual;
  3. SELECT last_day ('01-nov-2012' ) FROM dual;
  4. SELECT next_day ('30-nov-2012' , 'sat') -1 FROM dual;

答案:B . NEXT_DAY(date,’day’) 和 LAST_DAY (date,’day’) 函数查找日期之后的下一个或最后一个指定的星期 (‘day’) 的日期。char 的值可以是表示一天的数字或字符串。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁