Sql 替换字段中的第一个字母

Sql 替换字段中的第一个字母,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,嗨,伙计们,我有这张桌子 我需要用ACCT_SHORT_NAME的名字替换ACCT_NAME中的第一个字母。像Higlighted(RAFFMAN)这样的记录不应更改。我试过: select acct_name, ACCT_SHORT_NAME,replace(acct_name, substr(acct_name, 1, 1), ACCT_SHORT_NAME) from tbaadm.gam where schm_type = 'TDA' and rcre_user_id =

嗨,伙计们,我有这张桌子

我需要用ACCT_SHORT_NAME的名字替换ACCT_NAME中的第一个字母。像Higlighted(RAFFMAN)这样的记录不应更改。我试过:

select acct_name, ACCT_SHORT_NAME,replace(acct_name, substr(acct_name, 1, 1),      ACCT_SHORT_NAME)
 from tbaadm.gam where schm_type = 'TDA' and rcre_user_id  = 'SYSTEM' and substr(acct_name,2,1) = ' '
我得到:


这意味着我将在ACCT_SHORT_NAME中选取整个值。做我想做的事情的最佳方法是什么?

通过使用函数获取第一个空格的位置来提取名字

   replace(acct_name, substr(acct_name, 1, 1),  subst(ACCT_SHORT_NAME,1,INSTR(ACCT_SHORT_NAME,' ')))

要解释只有名字的短名称,请使用
CASE

查看ACCT_名称仅为一个名称(如“MOHAMED”)的情况,这不起作用