UPDATE invoices
SET docnumber = REPLACE (docnumber, 'Y', 'P');
当然,这假设字符串的其余部分不能包含 P . 如果可以,那么基于正则表达式的替换将使用 REGEXP_REPLACE 只替换开头的函数 Y .
UPDATE invoices
SET docnumber = REGEXP_REPLACE (docnumber, '^Y', 'P');
下面的查询显示 REGEXP_REPLACE 只替换开头 Y ``` WITH inv AS (SELECT 'Y-8817Y' AS docnumber FROM DUAL UNION SELECT 'Y-8884' AS docnumber FROM DUAL) SELECT docnumber, REGEXP_REPLACE (docnumber, '^Y', 'P') AS replaced_y FROM inv;
3条答案
按热度按时间fcg9iug31#
可以使用字符串函数。以下内容将列中每个值的第一个字符替换为
'P'
:根据您的实际需求,您可以更具体一点,例如通过确保
docnumber
开始于'Y'
:jjjwad0x2#
这是一个简单的
Y
至P
在列中。简单的更新一下REPLACE
函数将解决问题。当然,这假设字符串的其余部分不能包含
P
. 如果可以,那么基于正则表达式的替换将使用REGEXP_REPLACE
只替换开头的函数Y
.下面的查询显示
REGEXP_REPLACE
只替换开头Y
```WITH
inv
AS
(SELECT 'Y-8817Y' AS docnumber FROM DUAL
UNION
SELECT 'Y-8884' AS docnumber FROM DUAL)
SELECT docnumber,
REGEXP_REPLACE (docnumber, '^Y', 'P') AS replaced_y
FROM inv;
DOCNUMBER REPLACED_Y
Y-8817Y P-8817Y
Y-8884 P-8884
hs1rzwqc3#
请使用以下查询: