84. View the Exhibit and examine the structure of the EMPLOYEES table.
Examine the data in the ENAME and HIREDATE columns of the EMPLOYEES table:
ENAME HIREDATE
SMITH 17-DEC-80
ALLEN 20-FEB-81
WARD 22-FEB-81
You want to generate a list of user IDs as follows:
USERID
Smi17DEC80
All20FEB81
War22FEB81
You issue the following query:
SQL>SELECT CONCAT(SUBSTR(INITCAP(ename),1,3), REPLACE(hiredate,'-')) "USERID" FROM employees;
What is the outcome?
A. It executes successfully and gives the correct output.
B. It executes successfully but does not give the correct output.
C. It generates an error because the REPLACE function is not valid.
D. It generates an error because the SUBSTR function cannot be nested in the CONCAT function.
Answer: A
答案解析:
参考:http://blog.csdn.net/rlhua/article/details/12848395
题意输出的要求是名字的前三位并且首字母大写,日期不要短横线。
SELECT CONCAT(SUBSTR(INITCAP(FIRST_NAME),1,3), REPLACE(HIRE_DATE,'-')) "USERID" FROM employees;
按照hr用户的employees来实验验证:
hr@TEST0924> select FIRST_NAME,HIRE_DATE from employees;
FIRST_NAME HIRE_DATE
-------------------- ------------------
Donald 21-JUN-07
Douglas 13-JAN-08
Jennifer 17-SEP-03
REPLACE(HIRE_DATE,'-')去掉日期中间的短横线,INITCAP(FIRST_NAME)首字母大写,(SUBSTR(INITCAP(FIRST_NAME),1,3)去前三位,并且首字母大写,
CONCAT(SUBSTR(INITCAP(FIRST_NAME),1,3), REPLACE(HIRE_DATE,'-'))两个字符串连接。
结果如下:
hr@TEST0924> SELECT CONCAT(SUBSTR(INITCAP(FIRST_NAME),1,3), REPLACE(HIRE_DATE,'-')) "USERID" FROM employees;
USERID
------------------------------
Don21JUN07
Dou13JAN08
Jen17SEP03