大写 Oracle SQL 中的第一个字母

Han*_*aum -1 sql oracle


我试图用大写字母单独制作第一个字母。

select 
     case
          when 'G' then 'GERMANY'
          when 'US' then 'AMERICA'
          when 'S' then 'SPAIN
          else 'unknown'
from 
     customer
Run Code Online (Sandbox Code Playgroud)

Oracle 输出:
德国
美洲
西班牙

我不工作的“解决方案”

select 
     case initcap(land)
          when 'G' then 'GERMANY'
          when 'US' then 'AMERICA'
          when 'S' then 'SPAIN
          else 'unknown'
from 
     customer
Run Code Online (Sandbox Code Playgroud)

Oracle 输出:
德国
美洲
西班牙

ruu*_*van 5

由于每个人都必须对您的需求做出假设,因此我尝试了解您正在寻找的内容-

SELECT INITCAP (
          CASE land
             WHEN 'G' THEN 'GERMANY'
             WHEN 'US' THEN 'AMERICA'
             WHEN 'S' THEN 'SPAIN'
             ELSE 'unknown'
          END)
  FROM customer;
Run Code Online (Sandbox Code Playgroud)

然而,我会争辩说,除非您有某种方法来自动生成这些 case 语句(我对此表示怀疑),否则为什么不WHEN 'G' THEN 'Germany'首先编写。

  • 取决于“英国”您想要“英国”还是“英国”。如果是前者,请参阅 MT0 对使用 SUBSTR 的回答。 (3认同)