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

时间:2012-11-06 16:36:29

标签: sql oracle oracle11g

嗨大家好我有这张桌子 My Original table

我需要将ACCT_NAME的第一个字母替换为ACCT_SHORT_NAME的名字。像Higliighted(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) = ' '

我得到了:

Table after select

这意味着我在ACCT_SHORT_NAME中挑选了整个价值。什么是尝试做的最佳方式?

1 个答案:

答案 0 :(得分:1)

使用INSTR函数提取名字以获取第一个空格的位置

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

要考虑名字的短名称,请使用CASE