嗨大家好我有这张桌子
我需要将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) = ' '
我得到了:
这意味着我在ACCT_SHORT_NAME中挑选了整个价值。什么是尝试做的最佳方式?
答案 0 :(得分:1)
使用INSTR函数提取名字以获取第一个空格的位置
replace(acct_name, substr(acct_name, 1, 1), subst(ACCT_SHORT_NAME,1,INSTR(ACCT_SHORT_NAME,' ')))
要考虑名字的短名称,请使用CASE