SQL - 條件表示式問題



1. 關於 Oracle 資料庫中的資料型別,哪個說法是正確的?

  1. 它們用於對列進行排序。
  2. 它們用於在表中對列進行結構化表示。
  3. 它們用於限制列可以儲存的資料型別。
  4. 它們不是必需的。

答案:C. 資料型別定義列在表中可以儲存的資料型別。一個列只能儲存一種型別的資料。Oracle 中主要的資料型別包括 NUMBER、VARCHAR2 和 DATE。

2. 關於巢狀函式,哪個說法是正確的?

  1. 在 Oracle 資料庫中,巢狀函式的使用次數限制為 5 次。
  2. 它們從最外層到最內層進行評估。
  3. 它們從最內層到最外層進行評估。
  4. 巢狀表示式中的所有函式都返回相同的資料型別。

答案:C. 單行函式和組函式可以在 SELECT 查詢中巢狀,其中最內層的函式首先執行。最內層函式的執行結果作為外層函式的輸入。

3. 以下哪個函式簡化了處理可能包含空值列的操作?

  1. 巢狀函式
  2. 通用函式
  3. 條件函式
  4. 以上都不是

答案:B. 通用函式如 NVL、NVL2、NULLIF 和 COALESCE 用於在顯示查詢結果時消除 NULL 的影響。它們透過分配替代值來繞過 NULL 值。

4. 以下哪些資料型別適用於通用函式?

  1. VARCHAR2
  2. NUMBER
  3. DATE
  4. 所有資料型別

答案:D. 通用函式通常與所有主要資料型別(如 NUMBER、VARCHAR2 和 DATE)相容。

5. 關於 COALESCE 函式,哪個說法是正確的?

  1. 它接受至少 2 個,最多 5 個輸入引數。
  2. 它始終返回輸入引數中的第一個 NULL 值。
  3. 它可以接受無限數量的輸入引數。
  4. 它返回第一個非空引數,否則返回空值。

答案:C, D. COALESCE 函式需要兩個必填引數,以及任意數量的可選引數。語法為 COALESCE(expr1, expr2,Ö,exprn),其中如果 expr1 不為空,則返回 expr1,否則如果 expr2 不為空,則返回 expr2,依此類推。COALESCE 是 NVL 函式的通用形式,如下兩個等式所示:COALESCE(expr1,expr2) = NVL(expr1,expr2),COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3))

6. NVL 函式需要多少個必填輸入引數?

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

答案:C. NVL 函式需要兩個必填引數。其語法為 NVL(original, ifnull),其中 original 表示要測試的項,ifnull 表示如果 original 項計算結果為空則返回的結果。original 和 ifnull 引數的資料型別必須始終相容。它們必須具有相同的型別,或者必須能夠將 ifnull 隱式轉換為 original 引數的型別。NVL 函式返回與 original 引數具有相同資料型別的返回值。

7. 以下語句中哪個地方錯了?

NVL (ifnull, original)
  1. 沒有錯誤。
  2. 引數 original 不是必需的。
  3. 引數 'ifnull' 不是必需的。
  4. 正確的語句是 NVL (original,ifnull)。

答案:D. NVL 函式評估任何資料型別的列或表示式是否為空。如果該項為空,則返回一個非空替代值;否則,返回初始項。

8. 以下查詢的輸出是什麼?

SELECT NVL(1234) FROM dual;
  1. 1234
  2. 1000
  3. NULL
  4. ORA-00909:無效的引數數量錯誤

答案:D. NVL 函式需要兩個必填引數。其語法為 NVL(original, ifnull),其中 original 表示要測試的項,ifnull 表示如果 original 項計算結果為空則返回的結果。

9. 以下查詢的輸出是什麼?

SELECT NVL(1234,' ') FROM dual;
  1. 一個空格,即 ' '
  2. 1234
  3. NULL 值
  4. ORA-01722: 無效數字

答案:D. original 和 ifnull 引數的資料型別必須始終相容。它們必須具有相同的型別,或者必須能夠將 ifnull 隱式轉換為 original 引數的型別。NVL 函式返回與 original 引數具有相同資料型別的返回值。1234 應該用單引號括起來。在這種情況下不會發生資料型別的隱式轉換。

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

SELECT NVL(SUBSTR('abc',-4),'SUBSTR didn't work') FROM dual;
  1. abc
  2. bc
  3. c
  4. SUBSTR 不起作用

答案:D。

11. 您需要提取一份報告,該報告顯示部門 100 中所有員工的姓名、姓氏和獲得的佣金百分比。報告中不應包含任何空列。如果列沒有值,則所有列都應至少包含“0”。以下哪個查詢可以滿足此要求?(考慮給定的表結構)

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)
  1. SELECT first_name, last_name, commission_pct*salary FROM employees WHERE department_id  = 100;
  2. SELECT first_name, last_name, NVL(commission_pct*salary,0) monthly_commission FROM employees WHERE department_id  = 100;
  3. SELECT first_name, last_name, NVL(commission_pct,0)*salary monthly_commission FROM employees WHERE department_id  = 100;
  4. SELECT first_name, last_name, commission_pct*salary FROM employees;

答案:B, C。

12. Oracle 資料庫中的資料轉換型別有哪些?

  1. 隱式轉換
  2. 顯式轉換
  3. 外部轉換
  4. 物理轉換

答案:A, B. TO_CHAR、TO_NUMBER 和 TO_DATE 是三種最常用的轉換函式,並進行了詳細討論。TO_CHAR 函式將數字和日期資訊轉換為字元,而 TO_NUMBER 和 TO_DATE 分別將字元資料轉換為數字和日期。

13. 在 Oracle 資料庫中,隱式轉換時會發生什麼?

  1. Oracle 資料庫將一種資料型別隱式轉換為期望的資料型別。
  2. 使用者必須將資料型別轉換為期望的資料型別。
  3. Oracle 資料庫不轉換任何資料型別。
  4. 隱式轉換可以由使用者控制。

答案:A. 如果 Oracle 資料庫將值隱式轉換為相容的資料型別,則稱為隱式轉換。

14. 在 Oracle 資料庫中,顯式轉換時會發生什麼?

  1. Oracle 資料庫將一種資料型別轉換為另一種資料型別,並顯式地顯示給使用者。
  2. Oracle 資料庫提示使用者將一種資料型別轉換為另一種資料型別,然後轉換資料型別。
  3. 使用者使用 Oracle 資料庫提供的轉換函式來轉換資料型別。
  4. Oracle 資料庫中從不顯式轉換資料型別。

答案:C. 當程式設計師必須使用某個轉換函式以程式設計方式轉換值時,稱為顯式轉換。

15. 以下哪種轉換方法建議用於提高 Oracle 資料庫中 SQL 語句的可靠性?

  1. 隱式和顯式轉換
  2. 隱式轉換
  3. 顯式轉換
  4. 以上都不是

答案:C. TO_CHAR、TO_NUMBER 和 TO_DATE 是三種最常用的轉換函式,並進行了詳細討論。TO_CHAR 函式將數字和日期資訊轉換為字元,而 TO_NUMBER 和 TO_DATE 分別將字元資料轉換為數字和日期。

16. 以下哪個是 Oracle 執行的有效隱式轉換?

  1. NUMBER 到 VARCHAR2
  2. NUMBER 到 DATE
  3. CHAR 到 DATE
  4. DATE 到 VARCHAR2

答案:A, D。

17. 檢查給定的 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
FROM employees
WHERE hire_date > '01-JAN-13'; 
  1. 沒有發生轉換,此查詢導致 ORA 錯誤。
  2. 顯式轉換
  3. 隱式轉換
  4. 隱式和顯式轉換。

答案:C. Oracle 會將字串(VARCHAR2 或 CHAR)隱式轉換為 DATE,從而提供所需的輸出。

18. 關於表示式求值,Oracle 資料庫支援以下哪些內容?

  1. NUMBER 到 CHAR
  2. DATE 到 VARCHAR2
  3. CHAR 到 DATE
  4. NUMBER 到 DATE

答案:A, B. DATE 和 NUMBER 值可以輕鬆轉換為其字元等效項。當字元字串符合以下日期模式時,可以進行隱式字元到日期的轉換:[D|DD] 分隔符 1 [MON|MONTH] 分隔符 2 [R|RR|YY|YYYY]。

19. 為了使 Oracle 中 CHAR 到 NUMBER 的隱式轉換正常工作,必須滿足什麼條件?

  1. 此類轉換沒有特別的要求。
  2. 字元字串必須表示有效的數字。
  3. Oracle 不支援此類轉換。
  4. CHAR 到 NUMBER 只能顯式轉換。

答案:B. 字元資料必須表示有效的數字才能被視為隱式轉換。

20. 以下哪個表示式可以顯式用於將 CHAR 轉換為 NUMBER?

  1. TO_CHAR
  2. 使用 TO_DATE,然後將日期轉換為 NUMBER。
  3. TO_NUMBER
  4. 此類轉換不可行。

答案:C. TO_NUMBER 函式返回型別為 NUMBER 的項。轉換為數字的字元字串必須格式正確,以便任何非數字元件都使用適當的格式掩碼進行轉換或去除。

21. 以下哪個表示式可以顯式用於將 NUMBER 轉換為 CHAR?

  1. TO_CHAR
  2. 使用 TO_DATE,然後將日期轉換為 NUMBER。
  3. TO_NUMBER
  4. 此類轉換不可行。

答案:A. TO_CHAR 函式返回資料型別為 VARCHAR2 的項。當應用於型別為 NUMBER 的項時,可以使用多種格式選項。

22. 以下哪個表示式可以顯式用於將 CHAR 轉換為 DATE?

  1. TO_CHAR
  2. 使用 TO_DATE,然後將日期轉換為 NUMBER。
  3. TO_NUMBER
  4. TO_DATE

答案:D. TO_DATE 函式返回型別為 DATE 的項。轉換為日期的字元字串可以包含構成 DATE 的所有或僅部分日期時間元素。當僅使用部分日期時間元素的字串進行轉換時,Oracle 會提供預設值來構建完整的日期。使用格式模型或掩碼將字元字串的元件與不同的日期時間元素關聯。

23. 以下哪個表示式可以顯式用於將 DATE 轉換為 CHAR?

  1. TO_CHAR
  2. TO_DATE
  3. TO_NUMBER
  4. 此類轉換不可行。

答案:A. TO_CHAR 函式返回資料型別為 VARCHAR2 的項。當應用於型別為 NUMBER 的項時,可以使用多種格式選項。

24. 以下哪些是 Oracle 提供的用於將一種資料型別顯式轉換為另一種資料型別的函式?

  1. TO_CHAR
  2. TO_DATE
  3. TO_NUMBER
  4. 以上所有

答案:D. TO_CHAR、TO_NUMBER 和 TO_DATE 是三種最常用的轉換函式,並進行了詳細討論。TO_CHAR 函式將數字和日期資訊轉換為字元,而 TO_NUMBER 和 TO_DATE 分別將字元資料轉換為數字和日期。

25. 解釋以下函式的工作原理。

TO_CHAR(number/date, [format], [nlsparameters])
  1. 它將 VARCHAR2 轉換為 CHAR。
  2. 它使用格式模型 [format] 將數字/日期轉換為 VARCHAR2 字串。
  3. 它將 VARCHAR2 轉換為 NUMBER 或 DATE。
  4. [NLSPARAMETERS] 在語句中是必需的。

答案:B. TO_CHAR 函式返回資料型別為 VARCHAR2 的項。當應用於型別為 NUMBER 的項時,可以使用多種格式選項。

26. 以下語句中的 [NLSPARAMETERS] 子句指定什麼?

TO_CHAR(number/date, [format], [nlsparameters])
  1. 小數字符
  2. 組分隔符
  3. 貨幣符號
  4. 以上所有

答案:D。

27. 如果省略了 [nlsparameters] 引數,TO_CHAR (number/date, [format], [nlsparameters]) 函式將使用什麼值?

  1. 它會丟擲一個 ORA 錯誤。
  2. [nlsparameters] 引數是必須的,不能省略。
  3. 它將使用會話的預設引數值。
  4. 它將使用資料庫設計期間設定的預設引數值。

答案:C. 預設情況下,TO_CHAR 函式會考慮當前活動會話的 NLS 設定。

28. 關於以下語句,哪個說法是正確的?

TO_CHAR(number/date, [format], [nlsparameters])
  1. nlsparameters 引數指定返回月份和日期名稱的語言。
  2. 在執行上述語句時,省略了 nlsparameters 引數。
  3. 無論是否指定,nlsparameters 引數都將返回 NULL。
  4. nlsparameters 引數將在每次執行時返回資料庫的預設語言。

答案:A.

29. 關於 Oracle 資料庫中的以下語句,哪個說法是正確的?

TO_NUMBER(char, [format],[nlsparameters])
  1. 它將任何字串轉換為 [format] 中指定的格式的數字。
  2. 它僅將 NUMBER 轉換為 [format] 中提到的所需格式。
  3. 它將包含數字的字串轉換為 [format] 中指定的格式的數字。
  4. 此函式的結果始終是字元。

答案:C. TO_NUMBER 函式返回型別為 NUMBER 的項。轉換為數字的字元字串必須格式正確,以便任何非數字元件都使用適當的格式掩碼進行轉換或去除。

30. 關於 Oracle 資料庫中的以下語句,哪個說法是正確的?

TO_DATE(char, [format],[nlsparameters])
  1. 它將任何字串轉換為 [format] 中指定的格式的日期。
  2. 它僅將 DATE 轉換為 [format] 中提到的所需格式的另一個 DATE。
  3. 它將包含日期的字串轉換為 [format] 中指定的格式的數字。
  4. 它將包含日期的字串轉換為 [format] 中指定的格式的日期。

答案:C. TO_DATE 函式返回 DATE 型別的值。轉換為日期的字串可以包含構成 DATE 的所有或只是一部分日期時間元素。

31. 如果省略以下語句中的 [format] 引數,結果將是什麼?

TO_DATE(char, [format],[nlsparameters])
  1. 它將返回格式為 DD-MON-YY 的 DATE 值。
  2. 它將返回格式為 DD-MON-RR 的 DATE 值。
  3. 它將返回字元值。
  4. 它將返回 NUMBER 值。

答案:A.

32. 關於 Oracle 資料庫中的以下語句,以下哪個說法是正確的?

TO_CHAR(date, 'frmt')
  1. fmt 可以用雙引號或單引號括起來。
  2. 此函式中 fmt 的大小寫無關緊要。
  3. Fmt 可以包含任何字元或數字。
  4. fmt 必須用單引號括起來,並且必須是有效的日期格式。

答案:D。

33. 執行以下語句將產生什麼結果?

SELECT TO_CHAR ('01-JAN-13' 'DD-MON-YY') FROM dual;
  1. 01-JAN-13
  2. 01-01-2013
  3. 一個 ORA 錯誤
  4. 1-JAN-13

答案:C. 引數 '01-JAN-13' 和格式模型之間應該用逗號分隔。

34. 關於以下語句中的 [fmt] 引數,哪個說法是正確的?

 TO_DATE ([date as string],[format])
  1. fmt 可以用雙引號或單引號括起來。
  2. 此函式中 fmt 的大小寫無關緊要。
  3. [fmt] 引數有一個 'fm' 元素,它可以刪除空格並抑制前導零。
  4. Fmt 可以包含任何字元或數字。

答案:C.

35. Oracle 資料庫中 FM 修飾符的縮寫是什麼?

  1. First Move(首移動)
  2. Filter Mode(過濾器模式)
  3. Fill Mode(填充模式)
  4. First Mode(首模式)

答案:C. 格式模型 'fm' 代表 Fill Mode(填充模式)。

36. Oracle 資料庫中 FX 修飾符的縮寫是什麼?

  1. First Expression(首表示式)
  2. Fill Expression(填充表示式)
  3. First Extra(首額外)
  4. Format Exact(格式精確)

答案:D. 格式模型 'fm' 代表 Format Exact(格式精確)。

37. 在以下語句中,Oracle 資料庫將為 Month 元素分配多少個最大顯示位置?

SELECT TO_CHAR (sysdate, 'fmMonth') FROM dual;
  1. 5
  2. 6
  3. 7
  4. 9

答案:D. Month 元素的最長單詞是“September”(九月),因此 Oracle 會根據 9 個位置進行填充,以便顯示 Month 引數。

38. 關於 Oracle 資料庫中的 FM 修飾符,以下哪個說法是正確的?

  1. 此修飾符會抑制後續字元元素(如 MONTH)中的空格填充。
  2. 此修飾符會抑制後續數字元素(如 MI)的前導零。
  3. 此修飾符對日期格式沒有影響。
  4. 此修飾符對於與 TO_CHAR 函式一起使用的所有日期格式都是必須的。

答案:A,B。

39. 當在 Oracle 資料庫中的 DATE 格式模型中不使用 FM 修飾符時會發生什麼情況?

  1. 字元元素的結果將在左側用空格填充到可變長度。
  2. 字元元素的結果將在右側用空格填充到固定長度。
  3. 字元元素的結果中不會返回前導零。
  4. 如果使用 FM 修飾符,則返回值的長度是固定的。

答案:B。

40. 當使用 FM 修飾符時,TO_CHAR 函式的數字格式元素中的數字結果如何在輸出緩衝區中對齊?

  1. 右對齊
  2. 左對齊
  3. 居中對齊
  4. 以上都不是

答案:B. FM 修飾符會抑制新增到數字左側的空格。

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

SELECT TO_CHAR (TO_DATE('01-JAN-13'), 'fmDD Month YYYY') FROM dual;
  1. 1 January2013
  2. 1 January 2013
  3. 1 Jan 2013
  4. 1 January 13

答案:B. TO_CHAR 函式根據給定的格式模型格式化輸入日期。

42. 將在以下查詢的 'DD' 中新增多少個空格?

SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'fmDD Month YYYY') FROM dual;
  1. 0
  2. 1
  3. 2
  4. 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;
  1. 由於在日期格式中使用了雙引號,它將返回一個 ORA 錯誤。
  2. 1st January 2013
  3. First of JANUARY 2013 12:00:00 AM
  4. First of January 2013 12:00:00 AM

答案:D. TO_CHAR 函式根據給定的格式格式化輸入日期 '01-JAN-13'。

44. 以下哪個選項指定了 TO_DATE 函式的字元引數和日期格式模型的完全匹配?

  1. TO_DATE
  2. TO_CHAR
  3. FM
  4. FX

答案:D。

45. 關於 Oracle 資料庫中的 FX 修飾符,哪個說法是正確的?

  1. 它是區分大小寫的。
  2. 在與提到的日期格式模型匹配時,它會忽略字元引數中的空格。
  3. 字元引數中的標點符號和帶引號的文字不一定與格式模型匹配。
  4. 以上都不是

答案:D。

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

SELECT TO_DATE ('January   21, 2013' , 'fxMonth DD, YYYY') FROM dual;
  1. 它將成功執行。
  2. 它將返回結果 January 21, 2013。
  3. 它會產生一個 ORA 錯誤。
  4. 它將返回結果 JANUARY 21, 2013。

答案:C. 如果使用 FX,則字元引數必須與格式模型完全匹配。這裡 January 後面的額外空格不匹配。

47. 關於 Oracle 資料庫中的 FX 修飾符,哪個說法是正確的?

  1. 它可以與 TO_CHAR 一起使用。
  2. 它可以與 TO_CHAR 和 TO_DATE 一起使用。
  3. 它只能與 TO_DATE 一起使用。
  4. 以上都不是

答案:C. FX 格式修飾符只能與 TO_DATE 函式一起使用。

48. 假設 SYSDATE 為 01-JAN-13,以下查詢的結果是什麼?

SELECT TO_CHAR (SYSDATE, 'DDTH') FROM dual;
  1. 1st of January
  2. 1st
  3. 1 ST
  4. 01ST

答案:D。

49. 假設 SYSDATE 為 01-JAN-13,以下查詢的結果是什麼?

SELECT TO_CHAR (SYSDATE, 'fmDDTH') FROM dual;
  1. 1st of January
  2. 1st
  3. 1ST
  4. 01ST

答案:C.

50. 假設 SYSDATE 為 01-JAN-13 且是星期二,以下查詢的結果是什麼?

SELECT TO_CHAR (SYSDATE, 'fmDay')||'''s Meeting' FROM dual;
  1. Tuesday
  2. TUESDAY
  3. TUESDAY's Meeting
  4. Tuesday's Meeting

答案:D。

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

SELECT TO_DATE('01 / JAN / 13','DD-MON-YY') FROM dual;
  1. ORA 錯誤
  2. 01-JAN-2013
  3. 01-JANUARY-13
  4. 01-JAN-13

答案:D。

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

SELECT TO_DATE('01 ## JAN / 13','DD-MON-YY') FROM dual;
  1. ORA 錯誤
  2. 01-JAN-2013
  3. 01-JANUARY-13
  4. 01-JAN-13

答案:A. 在日期之間使用單個分隔符。

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

SELECT TO_DATE('01/JAN/13','fxDD-MON-YY') FROM dual;
  1. 01-JAN-2013
  2. ORA 錯誤
  3. 01-JAN-13
  4. 01-JANUARY-13

答案:B. 使用格式精確修飾符時,輸入文字必須與格式字串匹配。

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

SELECT TO_DATE('01-JAN-13','fxDD-MON-YY') FROM dual;
  1. 01-JAN-2013
  2. ORA 錯誤
  3. 01-JAN-13
  4. 01-JANUARY-13

答案:C.

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

SELECT TO_DATE ('11-JAN-2013','fxDD-MON-YYYY') FROM dual;
  1. 11-JAN-13
  2. 11-01-13
  3. 11-JAN-2013
  4. ORA 錯誤

答案:C.

56. 員工 Allen 於 1-JAN-13 被聘用。以下查詢的結果是什麼?(假設會話的 NLS 引數設定為 DD-MON-YY)

SELECT TO_DATE(hire_date, 'fxfmDD-MON-YY') FROM employees WHERE first_name='ALLEN'; 
  1. ORA 錯誤
  2. 01-JAN-2013
  3. 1-JAN-13
  4. 1-JAN-2013

答案:C.

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

SELECT TO_CHAR(TO_DATE ('01-JAN-2013'), 'DD-Month-RR') FROM dual;
  1. 01-JAN-13
  2. 01-01-2013
  3. 01-January-13
  4. 01-January -13

答案:D. Month 修飾符會用空格填充到 9 個位置。

檢查給出的 EMPLOYEES 表的結構,並回答以下第 58 和 59 題。

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)

58. 您需要列出所有在 1990 年之前被聘用的員工的姓名和姓氏。以下哪個 WHERE 語句將為您提供所需的結果?(假設此列表是在“01-JAN-2013”生成)

  1. WHERE TO_DATE (hire_date, 'DD-MON-YY') < '01-JAN-1990'
  2. WHERE TO_DATE (hire_date, 'DD-MON-YYYY') < '01-JAN-1990'
  3. WHERE TO_DATE (hire_date, 'DD-MON-YY') < '01-JAN-90'
  4. WHERE TO_DATE (hire_date, 'DD-MON-RR') < '01-JAN-1990'

答案:D. 使用 RR 格式將考慮 1950 年至 1999 年之間的日期的年份部分。

59. 以下哪個是巢狀函式的示例?

  1. SELECT lower(last_name) FROM employees;
  2. SELECT upper (last_name) FROM employees;
  3. SELECT concat (first_name, last_name) FROM employees;
  4. SELECT upper (concat(SUBSTR(first_name,1,6),'_UK')) FROM employees; 

答案:D. 函式中的多個函式稱為函式巢狀。

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

  1. 它只能接收 2 個引數。
  2. COALESCE 函式中的所有引數可以具有不同的資料型別。
  3. COALESCE 函式中的所有引數都應該具有相同的資料型別。
  4. 以上都不是

答案:C. COALESCE 函式接收兩個必填引數和任意數量的可選引數。語法為 COALESCE(expr1, expr2,Ö,exprn),其中如果 expr1 不為 null,則返回 expr1,否則如果 expr2 不為 null,則返回 expr2,依此類推。

61. 以下哪個函式用於條件表示式?

  1. TO_CHAR
  2. COALESCE
  3. NVL
  4. CASE

答案: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;
  1. 01-jan-2013
  2. 01-jan-13
  3. tue-jan-13
  4. tue-jan-2013

答案:D。格式模型“dy”拼寫輸入日期的前三個字母。 “DY”將給出“TUE”,而不是上面查詢中給出的“tue”。

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

SELECT TO_CHAR(TO_DATE('01-JAN-13','DD-MON-YY'),'fmDAY-mon-yyyy') FROM dual;
  1. 1-jan-2013
  2. 01-jan-13
  3. TUESDAY -jan-13
  4. TUESDAY-jan-2013

答案:D。fmDAY(所有大寫字母)或fmday(所有小寫字母)格式模型將拼寫輸入日期的日期,沒有任何前導或尾隨空格。

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

SELECT TO_CHAR(TO_DATE('19-JUN-13'),'qth') FROM dual;
  1. 1st
  2. 2nd
  3. 3rd
  4. 4th

答案:B。格式模型“q”給出給定日期所在的季度。在給定的查詢中,APR-JUN 是第 2 季度。

檢查給定的EMPLOYEES表的結構,並回答接下來的第65到67題。

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)

65. 一些員工在今年(即2013年)的第二週加入了ABC公司。您需要列出所有這些員工的姓、名和部門ID。以下哪個查詢將為您提供所需的結果?

  1. SELECT first_name, last_name, department_id  FROM employees WHERE TO_DATE(hire_date,'w') >2;
  2. SELECT first_name, last_name, department_id  FROM employees WHERE TO_DATE(hire_date,'w') between 1 and 2;
  3. SELECT first_name, last_name, department_id  FROM employees WHERE TO_CHAR(hire_date,'w') <3;
  4. SELECT first_name, last_name, department_id  FROM employees WHERE TO_CHAR(sysdate,'ww') =2;

答案:D。格式模型“ww”給出一年中的第幾周。

66. ABC公司管理層想找出2012年第3季度有多少員工被聘用。以下哪個查詢將為您提供所需的結果?

  1. SELECT count(employee_id  ) FROM employees WHERE TO_CHAR(hire_date, 'q') > 1;
  2. SELECT count(employee_id  ) FROM employees Where TO_CHAR(hire_date, 'q') = 3;
  3. SELECT employee_id   FROM employees Where TO_CHAR(hire_date, 'q') = 3;
  4. SELECT count(employee_id  ) FROM employees Where TO_CHAR(hire_date, 'q') between 0 and 3;

答案:B。格式模型“q”給出一年中的第幾季度。

67. 需要列印並頒發榮譽證書給所有在2008年之前加入組織並仍然是組織一部分的員工。姓、名和日期的列印將透過使用從查詢中獲取的佔位符來完成。證書應包含所有拼寫的數字。例如:星期二,1月1日,二〇〇八年。證書的最終文字應採用以下格式:茲證明,姓名加入本組織於星期二,1月1日,二〇〇八年,已成功在公司工作5週年。以下哪個查詢將有助於以所需格式列印日期?

  1. SELECT TO_CHAR (hire_date, 'fmDay,"the "ddth "of " Month, Yysp.') FROM employees;
  2. SELECT TO_CHAR (hire_date, 'Day,"the "ddth "of " Mon, Yyyy.') FROM employees;
  3. SELECT TO_CHAR (hire_date, 'fmDAY,"the "ddth "of " Month, Ysp.') FROM employees;
  4. SELECT TO_CHAR (hire_date, 'fmDay,"the "ddth "of " MONTH, Rsp.') FROM employees;

答案:A。“sp”識別符號用簡單的英語拼寫年份。

68. 需要生成一個報告,該報告為所有員工從可用的紙質來源建立審計歷史表。紙質來源僅包含員工被聘用的2011年的資料。此資料僅包含僱用日期的年份。您需要將日期作為該特定年份的1月1日(無前導零和空格)放入審計歷史表中。以下哪個子句將實現此需求?

  1. TO_DATE('2011','YYYY')
  2. TO_CHAR (TO_DATE ('2011','YYYY'),'fmMM/DD/YYYY')
  3. TO_CHAR('2011','DD-MON-YYYY')
  4. TO_DATE ('01-01-2011','DD-MM-YYYY')

答案:B。

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

SELECT TO_NUMBER ('$3000') FROM dual;
  1. 3000
  2. $3000
  3. NULL
  4. ORA 錯誤

答案:D。查詢丟擲“ORA-01722: 無效數字”錯誤,因為給定的字串無法識別為數字。

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

SELECT TO_NUMBER('$3,000.67','$999,999.99') FROM dual;
  1. $3000.67
  2. 3000
  3. 3000.67
  4. 由於輸入字串的字元少於提到的格式模型,因此出現ORA錯誤。

答案:C。適當的格式模型幫助TO_NUMBER將給定的字串轉換為數字。

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

SELECT TO_NUMBER('$3,000,000.67','$999,999.99') FROM dual;
  1. $3,000,000.67
  2. 3000,000.67
  3. 3000.67
  4. 由於格式模型的字元少於輸入字串,因此出現ORA錯誤。它應該相同。

答案:D。

72. 以下查詢將產生什麼結果?

SELECT TO_NUMBER('456.23','999.99') FROM dual;
  1. ORA 錯誤
  2. 456.23
  3. 456
  4. 以上都不是

答案:B。

73. 關於巢狀函式,以下哪一項是正確的?

  1. 巢狀意味著將一個函式的輸出用作另一個函式的輸入。
  2. 巢狀最多可以應用到3級巢狀。
  3. 巢狀應用於多行函式,直至任何深度。
  4. 以上都不是

答案:A。函式執行的輸出用作其前一個函式的輸入。

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

SELECT NULLIF(1,2-1) FROM dual;
  1. 0
  2. 1
  3. NULL
  4. 以上都不是

答案:C。NULLIF函式測試兩個項是否相等。如果它們相等,則函式返回null,否則返回測試的兩個項中的第一個。這裡,Oracle認為1和表示式“2-1”相等,因此返回NULL。

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

SELECT NULLIF('01-JAN-2013','01-JAN-13') FROM dual;
  1. 1-JAN-13
  2. 01-JAN-2013
  3. NULL
  4. ORA 錯誤

答案:B。由於兩個日期的長度不同,因此返回第一個引數。

76. Oracle DB中COALESCE函式的必選引數與可選引數的比例是多少?

  1. 0:1
  2. 1:2
  3. 2:任意數量
  4. 以上都不是

答案:C。COALESCE函式有兩個必選引數和任意數量的可選引數。OALESCE是NVL函式的通用形式,如下面的兩個等式所示:COALESCE(expr1,expr2) = NVL(expr1,expr2), COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3))。

77. 以下哪些等式是正確的?

  1. COALESCE(expr1,expr2) = NVL(expr1,expr2)
  2. COALESCE(expr1,expr2) = NVL2(expr1,expr2,expr3)
  3. COALESCE(expr1,expr2,expr3) = NVL(expr1,NVL(expr2,expr3))
  4. 以上所有

答案:A,C。

78. 以下哪個是NVL2的正確語法?

  1. NVL(original,ifnotnull)
  2. NVL2(original,ifnull,ifnotnull)
  3. NVL(original,NULL)
  4. NVL(original,ifnull) 和 NVL2(original,ifnotnull,ifnull)

答案:D。

79. 以下哪個函式是Oracle中繼承的ANSI標準關鍵字?

  1. CASE
  2. DECODE
  3. A和B
  4. 以上都不是

答案:A。CASE是符合ANSI SQL標準的,而不是Oracle特有的。

80. 關於Oracle DB中的DECODE語句,以下哪一項是正確的?

DECODE(expr1,comp1,iftrue1,comp2,[iftrue2]) 
  1. Comp2不是可選的
  2. 如果expr1等於comp1,則返回comp2
  3. 如果expr1等於comp1,則返回iftrue1
  4. 以上都不是

答案:C。DECODE函式透過測試其前兩個項是否相等來實現if-then-else條件邏輯,如果它們相等則返回第三個,如果它們不相等則可選地返回另一個項。DECODE函式至少需要三個必選引數,但可以接受更多引數。

81. 關於DECODE函式中的引數,以下哪一項是正確的?

  1. 所有引數必須是VARCHAR2
  2. 沒有表示式可以作為DECODE函式的引數
  3. 所有引數必須是NUMBER
  4. 返回的資料型別與第一個匹配的比較項的資料型別相同。

答案:D。DECODE函式透過測試其前兩個項是否相等來實現if-then-else條件邏輯,如果它們相等則返回第三個,如果它們不相等則可選地返回另一個項。

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

SELECT DECODE (null,null,'expr3') FROM dual;
  1. NULL
  2. 0
  3. Expr3
  4. ORA 錯誤

答案:C。DECODE認為兩個NULL值是等價的。Oracle中NULL的一個異常。

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

SELECT DECODE ('elephant','rat','lion','tiger','cat','squirrel','elephant','koala','rat','And it continues') FROM dual;
  1. elephant
  2. rat
  3. koala
  4. 並且它繼續

答案:D。DECODE函式至少需要三個必選引數,但可以接受更多引數。

84. Oracle DB中CASE表示式的最小必選引數數量是多少?

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

答案:D。CASE表示式有助於if-then-else條件邏輯。CASE表示式有兩種變體。簡單的CASE表示式只列出一次條件搜尋項,並且每個比較表示式都測試與搜尋項的相等性。搜尋的CASE表示式為每個比較表示式列出一個單獨的條件。它至少需要3個必選引數,但也可以接受更多引數。

85. Oracle DB中使用哪種關鍵字組合來包含CASE語句?

  1. CASEÖEND IF;
  2. IFÖEND IF;
  3. CASEÖ;
  4. CASEÖEND;

答案:D。

86. 如果CASE語句中未定義ELSE塊,則在出現錯誤值時返回哪個值?

  1. 0
  2. NULL
  3. 0或NULL
  4. 以上都不是

答案:B。

87. 如果CASE語句中存在多個WHEN..THEN級別,以下哪個選項是正確的?

  1. CASE僅搜尋或比較第一個級別,並在不檢查WHENÖTHEN的其他級別的條件下退出。
  2. CASE語句將在WHENÖTHEN的所有級別中搜索,直到找到匹配項。
  3. A和B
  4. 以上都不是

答案:B。

88. CASE語句中的搜尋、比較和結果引數可以是什麼資料型別?

  1. VARCHAR2
  2. DATE
  3. NUMBER
  4. 列值、文字和表示式

答案:D。

89. CASE語句不能用於Oracle SQL查詢的哪些部分?

  1. SELECT
  2. 沒有這些選項
  3. WHERE
  4. ORDER BY

答案:B。

90. 檢查給定的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)

以下查詢在Oracle DB中的結果是什麼?

SELECT first_name, salary,
CASE department_id WHEN 100
THEN 'Accounts'
WHEN 101
THEN 'Human Resources'
WHEN 102
THEN 'Sales'
ELSE 'Unknown'
 END
 FROM employees;
  1. 它將建立一個ORA錯誤,因為CASE語句中不能編寫多個WHENÖTHEN語句。
  2. 它將顯示部門ID為100、101、102
  3. 它將僅顯示每當部門ID為100時出現“Accounts”,並忽略其餘命令。
  4. 以上都不是

答案:D. CASE 表示式可以實現 if-then-else 條件邏輯。CASE 表示式有兩種變體。簡單的 CASE 表示式只列出一次條件搜尋項,並且每個比較表示式都會測試與搜尋項的相等性。搜尋的 CASE 表示式為每個比較表示式列出單獨的條件。

91. Oracle DB中CASE語句可以有多少個WHENÖTHEN級別?

  1. 無限
  2. 1000
  3. 216
  4. 255

答案:D。

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

SELECT NVL2(
       NULLIF ('BMW','AUDI'),
       'HYUNDAI',
       'FERRARI'
       )
       FROM dual;
  1. BMW
  2. FERRARI
  3. NULL
  4. HYUNDAI

答案:D。NVL2函式對NVL進行了增強,但功能非常相似。它評估任何資料型別的列或表示式是否為空。如果第一個項不為空,則返回第二個引數,否則返回第三個引數。

93. 假設SYSDATE為01-JAN-13,以下查詢將產生什麼結果?

SELECT TO_CHAR (sysdate, 'fmddth" of" Month YYYY') FROM dual;
  1. 1月1日,2013年
  2. 1月1日,2013年
  3. 2013年1月1日
  4. 1月1日2013年

答案:D。“th”格式模型將日期的日期作為“st”或“th”給出。

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

SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'MmSP Month Yyyysp') FROM dual;
  1. 一月一日二〇一三年
  2. 一月JAN二〇一三年
  3. 一日一月二〇一三年
  4. 以上都不是

答案:C.

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

SELECT TO_CHAR (TO_DATE('01-JAN-13','DD-MON-YY'), 'DD-MON-YYYY hh24SpTh') FROM dual;
  1. 一月一日二〇一三年
  2. 一日一月二〇一三年
  3. ORA 錯誤
  4. 01-JAN-2013 zeroeth

答案:D。使用“SpTh”格式修飾符可以拼寫時間戳元件。

96. 這些函式中哪些函式在SQL語句中執行類似於if-then-else邏輯的工作?

  1. TO_CHAR
  2. TO_NUMBER
  3. A和B
  4. CASE

答案:D. CASE 表示式可以實現 if-then-else 條件邏輯。CASE 表示式有兩種變體。簡單的 CASE 表示式只列出一次條件搜尋項,並且每個比較表示式都會測試與搜尋項的相等性。搜尋的 CASE 表示式為每個比較表示式列出單獨的條件。

97. 檢查給定的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)

以下SQL查詢的結果是什麼?

SELECT DECODE (salary,10000) FROM employees; 
  1. 10000
  2. NULL
  3. 0
  4. ORA 錯誤

答案:B。DECODE函式透過測試其前兩個項是否相等來實現if-then-else條件邏輯,如果它們相等則返回第三個,如果它們不相等則可選地返回另一個項。DECODE函式至少需要三個必選引數,但可以接受更多引數。如果DECODE函式中的預設值被省略,則返回NULL。

98. 您需要將Oracle DB會話的時間顯示到小數秒後的3位小數。以下哪個查詢將給出所需輸出?

  1. SELECT TO_CHAR(sysdate, 'DD-MON-YY HH24:MI:SS.FF') FROM dual;
  2. SELECT TO_CHAR(sysdate, 'DD-MON-YY HH24:MI:SS') FROM dual;
  3. SELECT TO_CHAR(sysdate, 'DD-MON-YY HH24:MI:SS.FF3') FROM dual;
  4. SELECT TO_CHAR(sysdate, 'DD-MON-YY') FROM dual;

答案:C。HH:MI:SS格式的FF [1..9]副檔名在小數秒中產生最多1..9位的小數秒。

99. Oracle DB中日期和時間可以使用哪些標點符號?

  1. #
  2. @
  3. ,
  4. :

答案:C,D。

100. 檢查給定的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)

您需要查詢員工Jaimie Patrick在ABC公司被聘用的那一年中的第幾天。以下哪個查詢將給出所需的輸出?

  1. SELECT TO_CHAR(hire_date, 'DDD') FROM employees WHERE last_name = 'Patrick' AND first_name = 'John'; 
  2. SELECT TO_CHAR(hire_date, 'YYYY') FROM employees WHERE last_name = 'Patrick' AND first_name = 'John'; 
  3. SELECT TO_CHAR(hire_date, 'DD-MON-YYYY') FROM employees WHERE last_name = 'Patrick' AND first_name = 'John';
  4. SELECT TO_CHAR(hire_date, 'DD-MON-RR') FROM employees WHERE last_name = 'Patrick' AND first_name = 'John'; 

答案:A。格式模型“DDD”返回給定日期所在的一年中的第幾天。

101. 需要生成一個報告,該報告提供2013年6月1日午夜開始的所有批處理執行的計時。這些計時應以午夜後的秒精度表示。以下哪個子句將滿足要求?

  1. TO_CHAR(sysdate,'HH24:MI:SS')

  2. TO_CHAR(sysdate,'HH24:MI:SS.FF')
  3. TO_CHAR(sysdate,'HH24:MI:SSSS')
  4. TO_CHAR(sysdate,'HH24:MI:SS.FF3')

答案:C。 'SSSS' 格式模型給出的是午夜後的秒數。

廣告

© . All rights reserved.