SQL - 使用單行函式的題目



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. 使用 COUNT 函式和 DISTINCT 關鍵字的 SELECT 語句不能包含 WHERE 子句。

答案:A. COUNT(*) 函式返回表中滿足 SELECT 語句條件的行數,包括重複行和任何列中包含 null 值的行。如果 SELECT 語句中包含 WHERE 子句,則 COUNT(*) 返回滿足 WHERE 子句中條件的行數。相反,COUNT(expr) 返回 expr 指定的列中非空值的個數。COUNT(DISTINCT expr) 返回 expr 指定的列中唯一非空值的個數。

5. 在 Oracle 資料庫中,以下哪個命令用於計算行數和非 NULL 值的個數?

  1. NOT NULL
  2. INSTR
  3. SUBSTR
  4. COUNT

答案:D. COUNT (ALL column_name) 用於計算排除 NULL 的行數。類似地,COUNT(*) 用於計算包括 NULL 的列值。

6. 下面給出的查詢結果是什麼?

SELECT 100+NULL+999 FROM dual;
  1. 100
  2. 999
  3. NULL
  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. LNNVL

答案:C. NVL2 函式至少需要三個引數。NVL2 函式檢查第一個表示式。如果它不為 null,則 NVL2 函式返回第二個引數。如果第一個引數為 null,則返回第三個引數。

11. 在 Oracle DB 中,以下哪種型別的單行函式不能包含?

  1. 字元
  2. 數值
  3. 轉換
  4. 以上都不是

答案:D. 諸如字元、數值、日期、轉換和雜項以及程式設計師編寫的單行函式型別都可以包含在 Oracle DB 中。

12. 在以下子句中,單行函式可以在哪裡使用?

  1. SELECT
  2. WHERE
  3. ORDER BY
  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 函式將 null 值替換為備用值。日期、字元和數字資料型別的列可以使用 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 表中所有員工的 job ID。
  3. 它將列出所有員工的 job ID,並將 NULL job ID 替換為文字“Unknown”。
  4. 它將顯示所有員工的姓氏和 job ID,包括 job ID 中的 NULL 值。

答案:C. NVL 函式將 null 值替換為備用值。日期、字元和數字資料型別的列可以使用 NVL 提供備用值。列及其備用值的資料型別必須匹配。

15. 以下查詢的結果是什麼?

SELECT NVL (NULL,'1') FROM dual;
  1. NULL
  2. 1
  3. 0
  4. 由於無法顯式地將 NULL 指定給 NVL 函式,因此會報錯

答案: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. 它將在 salary 列中為所有名字以“P”開頭的員工顯示 0
  2. 它將顯示名字以“P”開頭的員工的工資,如果工資為 NULL,則顯示 0。
  3. 它將丟擲 ORA 錯誤,因為 ORDER BY 子句也應該包含 salary 列。
  4. NVL 函式應該正確使用為 NVL (0, salary)

答案:B. NVL 函式將 null 值替換為備用值。日期、字元和數字資料型別的列可以使用 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 資料型別,則如果 arg2 為 NUMBER 資料型別,Oracle 將對 arg2 執行隱式型別轉換。在所有其他情況下,兩個引數必須具有相同的資料型別。

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. 它將為所有 job ID 為 NULL 的員工返回“Regular Employee”值
  2. 它將為所有 job ID 為 NULL 的員工返回“New Joinee”值
  3. 如果 job ID 為 NULL,它將返回“Regular Employee”
  4. 執行時會丟擲 ORA 錯誤。

答案:B. NVL2 函式檢查第一個表示式。如果第一個表示式不為 null,則 NVL2 函式返回第二個表示式。如果第一個表示式為 null,則返回第三個表示式。

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. 如果員工的 Commission 不為 NULL,則返回 Salary。
  2. 如果員工的 Commission 不為 NULL,則返回 Commission_pct。
  3. 如果員工獲得佣金,則返回名字以“P”開頭的員工以及 salary+(salary*commission_pct)。
  4. 查詢丟擲錯誤,因為在 NVL2 中編寫了數學表示式。

答案:C. NVL2 函式檢查第一個表示式。如果第一個表示式不為 null,則 NVL2 函式返回第二個表示式。如果第一個表示式為 null,則返回第三個表示式。

21. 關於 Oracle DB 中的 NULLIF 函式,哪個是正確的?

  1. 如果兩個表示式都不為 NULL,則 NULLIF(expr1,expr2) 將返回 expr2。
  2. 如果兩個表示式都為 NULL,則 NULLIF(expr1,expr2) 將返回 0。
  3. 如果兩個表示式相等,則 NULLIF(expr1,expr2) 將返回 NULL。
  4. 在 NULLIF(expr1, expr2) 中,Expr1 可以為 NULL

答案:C. NULLIF 函式測試兩個項是否相等。如果它們相等,則函式返回 null,否則返回測試的兩個項中的第一個。NULLIF 函式接受兩個任意資料型別的必填引數。語法為 NULLIF(arg1,arg2),其中比較引數 arg1 和 arg2。如果它們相同,則返回 NULL。如果它們不同,則返回 arg1。

22. 在下面顯示的語句之後給出正確的答案。

NULLIF (arg1,arg2) 
  1. Arg1 和 Arg2 可以是不同的資料型別。
  2. Arg1 和 Arg2 必須相等才能在 NULLIF 函式中使用。
  3. 如果使用 NULLIF,則不會進行內部資料型別轉換,就像 NVL 和 NVL2 的情況一樣。
  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 錯誤。

答案:D。

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. LONG
  4. NULLIF

答案:B 和 D。因為字元和 NULLIF 是單行函式,其餘是資料型別。

28. 關於多行函式,最合適的描述是什麼?

  1. 它們每行返回多個值。
  2. 它們每組行返回一個結果,並且可以操作多組行。
  3. 它們每行返回一個結果,並且可以操作多組行。
  4. 它們每組行返回多個值。

答案:B。多行函式始終作用於一組行,並每組行返回一個值。

29. 以下哪些也稱為組函式?

  1. 單行函式
  2. 多組函式
  3. 多行函式
  4. 單組函式。

答案:C。組函式與多行函式和聚合函式相同。

30. 關於單行函式,以下哪一項是正確的?

  1. 它們可以巢狀
  2. 它們接受引數並返回多個值。
  3. 它們不能修改資料型別
  4. 它們不能接受表示式作為引數。

答案:A。單行函式可以巢狀到多個級別。

31. 單行函式接受的引數個數是多少?

  1. 0
  2. 僅 1 個
  3. 僅 2 個
  4. 1 個或多個

答案:D。單行函式可以接受一個或多個引數,具體取決於它們服務的用途。

32. 以下哪個可以作為單行函式的引數?

  1. 資料型別
  2. SELECT 語句
  3. 表示式
  4. 表名

答案:C。使用者提供的常量、變數值、列值和表示式是單行函式的引數型別。

33. 關於字元函式,哪一項是正確的?

  1. 它們僅返回字元值
  2. 它們接受 NUMBER 值
  3. 它們接受字元引數,並且可以返回字元和數字值
  4. 它們接受所有資料型別的值

答案:C。字元函式 INSTR 接受字串值,但返回字串中字元的數字位置。

34. 關於數字函式,哪一項是正確的?

  1. 它們返回字元和數字值
  2. 它們不能接受表示式作為輸入
  3. 數字函式不能巢狀。
  4. 它們接受數字引數,並且僅返回數字值。

答案:D。

35. 以下哪個是 DATE 型別單行函式返回值的例外情況?

  1. TO_DATE
  2. SYSDATE
  3. MONTHS_BETWEEN
  4. TO_NUMBER

答案:C。所有 DATE 資料型別函式都返回 DATE 作為返回值,除了 MONTHS_BETWEEN 返回數字。

36. 以下哪個不是轉換型別單行函式?

  1. TO_CHAR
  2. TO_DATE
  3. NVL
  4. TO_NUMBER

答案:C。轉換函式將值從一種資料型別轉換為另一種資料型別。NVL 函式將空值替換為備用值。

37. 以下哪個是大小寫轉換字元函式?

  1. CONCAT
  2. SUBSTR
  3. INITCAP
  4. REPLACE

答案:C。CONCAT、SUBSTR 和 REPLACE 是字元操作字元函式,而 INITCAP、LOWER 和 UPPER 是大小寫轉換字元函式。

38. 以下查詢的結果是什麼?

SELECT lower('HI WORLD !!!')  FROM dual;
  1. Hi World !!!
  2. Hi WORLD !!!
  3. hi world !!!
  4. HI WORLD !!!

答案:C。LOWER 函式將字串轉換為小寫字元。

39. 以下查詢的結果是什麼?

SELECT lower(upper(initcap('Hello World') )) FROM dual;
  1. Hello World
  2. HELLO world
  3. hello World
  4. hello world

答案:D。大小寫轉換字元可以在 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. SELECT first_name||last_name FROM employees;
  2. SELECT first_name||' ' || last_name FROM employees;
  3. SELECT last_name||', '||first_name FROM employees;
  4. SELECT first_name||','||last_name FROM employees;

答案: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. 假設 employees 表中員工的姓氏都採用正確的格式,以下查詢的結果是什麼?

SELECT employee_id, last_name, department_id  FROM employees WHERE last_name = 'smith';
  1. 它將顯示姓氏為 Smith 的員工的詳細資訊
  2. 它將不返回任何結果。
  3. 它將返回姓氏為“smith”(全部小寫)的員工的詳細資訊。
  4. 它將返回姓氏為“Smith”(全部首字母大寫)的員工的詳細資訊。

答案:B。如果 employees 表中的姓氏都採用正確的格式,則條件 WHERE last_name = 'smith' 將不滿足,因此不會顯示任何結果。

43. 關於 Oracle DB 中的 CONCAT 函式,哪一項是正確的?

  1. 它只能將字元作為輸入。
  2. 它只能有兩個輸入引數。
  3. 它可以有兩個或多個輸入引數
  4. 它預設在連線的字串之間新增空格來連線值。

答案:B。CONCAT 函式僅接受兩個 NUMBER 或 VARCHAR2 資料型別的引數。

44. 關於 Oracle DB 中的 SUBSTR 函式,哪一項是正確的?

  1. 它提取指定長度的字串
  2. 它將字串的長度顯示為數值
  3. 它查詢指定字元的數字位置
  4. 它從字元字串的一側(或兩側)修剪字元

答案:A。SUBSTR(string, x, y) 函式接受三個引數,並返回一個字串,該字串包含從源字串提取的字元數,從指定的起始位置 (x) 開始。當位置為正時,函式從字串的開頭開始計數以查詢第一個字元。當位置為負時,函式從字串的末尾向後計數。

45. 以下查詢的結果是什麼?

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

答案: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. 它提示使用者在每次執行時輸入 jobid,然後以大寫形式顯示 jobid
  3. 它按 EMPLOYEES 表中存在的原樣給出 jobid,沒有任何更改
  4. 它不會要求使用者輸入 jobid,並將表中的所有 jobid 轉換為大寫

答案: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. 20-may-2013
  2. ORA 錯誤,因為 LOWER 和 UPPER 不能接受日期值。
  3. 20-MAY-13
  4. 20-May-13

答案: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. First_name, last_name, job_id
  3. 錯誤,因為 CONCAT 不能巢狀
  4. First_namelast_name, job_id

答案:A。CONCAT 函式可以與自身或其他字元函式巢狀。

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 函式可以與自身或其他字元函式巢狀。

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 函式不能應用於表示式和數字
  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. 您需要顯示 EMPLOYEES 表中 FIRST_NAME 列的最後 2 個字元,而無需使用 LENGTH 函式。以下哪個查詢可以滿足此需求?

  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) 開始。當位置為正時,函式從字串開頭開始計數以查詢第一個字元。當位置為負時,函式從字串末尾反向計數。

70. 假設 SYSDATE 為 13-JUN-13,以下查詢的結果是什麼?

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

答案:D. 該查詢將返回 NULL,因為 SYSDATE 中不存在以第 10 個位置開始的字元。

71. 在 Oracle 資料庫中,以下哪個用於替換給定字串中的特定字元?

  1. LTRIM
  2. TRIM
  3. TRUNC
  4. REPLACE

答案: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. 31-JUN-13

答案:B. 日期被截斷為該月的第一天。類似地,它也可以對年份進行操作。

76. 以下查詢的結果是什麼?

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

答案:B。

77. Oracle 資料庫中 MOD 函式的語法是什麼?

  1. Mod(divisor,dividend)
  2. MOD(divisor,1)
  3. MOD(dividend,divisor)
  4. 以上都不是

答案:C. MOD 函式用於獲取除法運算的餘數。

78. 以下查詢的結果是什麼?

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

答案:B. 對於正除數和負除數,MOD 函式都給出相同的答案。

79. 在 Oracle 資料庫中,以下哪個函式用於區分偶數或奇數?

  1. ROUND
  2. TRUNC
  3. MOD
  4. REPLACE

答案: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. Life is Calling
  3. NULL
  4. Life

答案:B. 僅使用前兩個引數呼叫 SUBSTR 函式會導致函式從起始位置到給定源字串的末尾提取字串。

82. SQL Developer 中 sysdate 的預設資料格式是什麼?

  1. DD-MON-YY
  2. DD-MON-RR
  3. DD/MON/RR
  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. 09-MAY-2013 12:05pm
  2. 10-MAY-2013 12:05pm
  3. 10-JUL-2013 12:05pm
  4. 09-JUL-2013 12:05pm

答案:B. ADD_MONTHS(date, x) 函式將“x”個日曆月新增到給定日期。'x' 的值必須是整數,可以為負數。

84. 執行以下語句後將返回什麼值?請注意,01-JAN-2013 發生在星期二。

SELECT next_day('01-JAN-2013','friday') FROM dual;
  1. 02-JAN-2013
  2. 星期五
  3. 04-JAN-2013
  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. NULL

答案:C. 如果當前年份和指定年份的兩位數介於 0 和 49 之間,則返回當前世紀。

87. 假設當前日期為 02-JUN-2007,則以 DD-MON-RR 格式返回 24-JUL-94 的世紀是多少?

  1. 19
  2. 21
  3. 20
  4. NULL

答案:A. 如果當前年份的兩位數介於 0 和 49 之間,並且指定年份介於 50 和 99 之間,則返回上一個世紀。

88. 假設當前日期為 02-JUN-1975,則以 DD-MON-RR 格式返回 24-JUL-94 的世紀是多少?

  1. 19
  2. 21
  3. 20
  4. NULL

答案:A. 如果當前年份和指定年份的兩位數介於 50 和 99 之間,則預設返回當前世紀。

89. 假設當前日期為 02-JUN-1975,則以 DD-MON-RR 格式返回 24-JUL-07 的世紀是多少?

  1. 19
  2. 21
  3. 20
  4. NULL

答案:C. 如果當前年份的兩位數介於 50 和 99 之間,並且指定年份介於 0 和 49 之間,則返回下一個世紀。

90. SYSDATE 函式接受多少個引數?

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

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

91. 關於 Oracle 資料庫中的 SYSDATE 函式,哪個說法是正確的?

  1. 它僅返回系統日期
  2. 它至少需要 2 個引數。
  3. 預設格式為 DD-MON-YY
  4. SYSDATE 的預設格式為 DD-MON-RR,它根據資料庫伺服器返回系統日期和時間。

答案:D。

92. 以下操作的結果的資料型別是什麼?

"Date3 = Date1-Date2"
  1. 日期
  2. Num1
  3. 0
  4. NULL

答案:B. 兩個日期的差值以天數表示。

93. 以下操作的結果的資料型別是什麼?

"Date2 = Date1-Num1"
  1. 日期
  2. Num1
  3. 0
  4. NULL

答案:A. 從日期值中減去數字會導致日期。

94. 在 Oracle 資料庫中,兩個日期之間的差值表示什麼?

  1. 它們之間的天數
  2. Oracle 資料庫中不允許日期差值
  3. 一個日期
  4. NULL

答案: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. NULL
  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. 31-feb-2009
  2. 28-feb-2009
  3. 31-mar-2009
  4. 15-jan-2009

答案:B. 2.5 的小數部分將被忽略,並向 2012 年 12 月 31 日新增 2 個月,即 2013 年 2 月 31 日,但由於這是一個無效日期,因此結果為 2009 年 2 月 28 日。

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') 函式用於查詢日期 date 後下一個或最後一個指定的星期幾 ('day') 的日期。char 的值可以是表示日期的數字或字元字串。

廣告