Sql 如何替换oracle中字符串的前三个字符
如何替换oracle中字符串的前三个字符。假设我有100条员工id记录,我需要在100条记录中的30到50条之间替换记录的前三个字符 输入:1112341123511123611237 输出:22223422223522236222237替换和更新 选中此项:Sql 如何替换oracle中字符串的前三个字符,sql,oracle,Sql,Oracle,如何替换oracle中字符串的前三个字符。假设我有100条员工id记录,我需要在100条记录中的30到50条之间替换记录的前三个字符 输入:1112341123511123611237 输出:22223422223522236222237替换和更新 选中此项: SELECT * FROM ns_words; mine mini mani nikhil sugandh mining SELECT regexp_replace(a,
SELECT * FROM ns_words;
mine
mini
mani
nikhil
sugandh
mining
SELECT regexp_replace(a,'(.{3}(.*)$)','abc\2') FROM NS_WORDS;
abce
abci
abci
abchil
abcandh
abcing
对于您的查询,它类似于:
SELECT regexp_replace(a,'(.{3}(.*)$)','abc\2') FROM NS_WORDS where col2
between 30 and 50;
假设您希望按照某些条件将第30到50行的前3个字符替换为abc,则:
SELECT CASE
WHEN ROWNUM BETWEEN 30 AND 50
THEN 'abc' || SUBSTR( your_column, 4 )
ELSE your_column
END AS replaced_value
FROM (
SELECT *
FROM your_table
ORDER BY <some_criteria>
)
替换为什么您想要查询或更新语句???请共享一些示例输入和预期输出。请发布一些实际代码!请包括详细信息,如:您的表格结构为文本或代码,而不是图像;你想替换什么;你想用什么来代替它;如何排序数据以查找第30条或第50条记录;是要更新表还是只在查询中执行替换;以及您的预期输出,如text.replace前三个字符之间的记录在30至50之间的100这并没有解决OP的不明确的要求只更新两个边界之间的记录。而且,使用正则表达式是过分的;您只需使用SUBSTR。@MT0为其指定另一列,并在30和50之间进行where运算即可