我有一个SQL查询;
SELECT INITCAP(
first_name
|| ' '
|| UPPER(
SUBSTR(Last_Name
,-LENGTH(Last_Name)
,2)
)
)
FROM employees;
结果是这样的;
David Au
Hermann Ba
Shelli Ba
Amit Ba
Elizabeth Ba
Sarah Be
David Be
为什么最后两个字母没有转换成大写字母?任何帮助都将不胜感激。
您正在对整个结果集应用INITCAP,因此,在最后两个字符转换为UPPER后,您将再次应用INITCAP。把它们分开。
INITCAP(first_name) || ' ' || UPPER(SUBSTR(Last_Name, -LENGTH(Last_Name),2))
例如,
SQL> SELECT INITCAP(first_name)
2 || ' '
3 || UPPER(SUBSTR(Last_Name, -LENGTH(Last_Name),2))
4 FROM hr.employees
5 WHERE rownum <=10;
INITCAP(FIRST_NAME)||''
-----------------------
Ellen AB
Sundar AN
Mozhe AT
David AU
Hermann BA
Shelli BA
Amit BA
Elizabeth BA
Sarah BE
David BE
10 rows selected.
因为括号放错了-
SELECT INITCAP(first_name) || ' ' || UPPER(SUBSTR(Last_Name, -LENGTH(Last_Name),2))
FROM employees;