【问题标题】:How to add text between other text?如何在其他文本之间添加文本?
【发布时间】:2023-02-22 21:25:36
【问题描述】:
我正在尝试在表格中的其他文本之间添加文本。例如,该列是 varchar(10),它始终包含 8 个字符的文本。我想制作一个在第六个和第七个字符之间添加两个零 (00) 的过程。
例如:
'gr123465' 变成 'gr12340065'
我不知道这样做的声明。我知道 lpad 和 rpad,但我认为它们不会有帮助。
我还没有尝试任何东西,因为我找不到这样做的声明。也许||?我不知道。我不太擅长 SQL。
【问题讨论】:
标签:
sql
concatenation
firebird
firebird2.5
【解决方案1】:
您可以为此使用 OVERLAY function:
select overlay(data placing '00' from 7 for 0)
from (select 'gr123465' as data from rdb$database)
-- Result is: gr12340065
(dbfiddle:https://dbfiddle.uk/ZD9tB8VC)
overlay(data placing '00' from 7 for 0) 将在data 的第七个字符位置插入文本00,for 0 表示不应覆盖后面的文本,但应插入新值。