首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向现有字符串中添加字符

向现有字符串中添加字符
EN

Stack Overflow用户
提问于 2019-05-15 08:12:05
回答 1查看 1.5K关注 0票数 1

如果我错过了解决问题的可能方法,很抱歉,但我需要一些建议。我相信有一个简单的解决办法,但我没有看到它(目前)。

因此,我有一个Postgres DB表,它需要大量更新,只需在字符串中的特定位置添加一个字符。

示例:

select PINFO.title, SUBSTRING(PINFO.title FROM ',\ (.+). del') AS ep_num from my_table where my_condition...

所以我得到了这样的东西:

代码语言:javascript
复制
+--------------------+--------+
|       title        | ep_num |
+--------------------+--------+
| my_series, 01. del |     01 |
| my_series, 10. del |     10 |
| my_series, 11. del |     11 |
| my_series, 2. del  |      2 |
| my_series, 3. del  |      3 |
| my_series, 4. del  |      4 |
| my_series, 5. del  |      5 |
| my_series, 6. del  |      6 |
| my_series, 7. del  |      7 |
| my_series, 8. del  |      8 |
| my_series, 9. del  |      9 |
+--------------------+--------+

所以,我想要的是,在数字小于10的情况下,添加一个0。所以我的预期结果应该是:

代码语言:javascript
复制
+--------------------+--------+
|       title        | ep_num |
+--------------------+--------+
| my_series, 01. del |     01 |
| my_series, 10. del |     10 |
| my_series, 11. del |     11 |
| my_series, 02. del |     02 |
| my_series, 03. del |     03 |
| my_series, 04. del |     04 |
| my_series, 05. del |     05 |
| my_series, 06. del |     06 |
| my_series, 07. del |     07 |
| my_series, 08. del |     08 |
| my_series, 09. del |     09 |
+--------------------+--------+

什么是最好的方法?我需要更新表,而不是这样打印输出。谢谢!M.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 08:15:55

demo: db<>fiddle

代码语言:javascript
复制
UPDATE my_table
SET 
    title = 'my_series, ' || lpad(ep_num, 2, '0') || '. del',
    ep_num = lpad(ep_num, 2, '0')

使用lpad()函数

ep_num

demo: db<>fiddle

代码语言:javascript
复制
UPDATE my_table mt
SET title = parts[1] || ' ' || lpad(parts[2], 3, '0') || ' ' || parts[3]
FROM (
    SELECT 
        title,
        regexp_split_to_array(title, ' ') AS parts
    FROM
        my_table
) s
WHERE mt.title = s.title

regexp_split_to_table()将空格处的标题分成三个部分。它们可以在左填充第二块后再次合并。这里的lpad()函数创建了一个3字符长的文本,而不是2,因为之前的拆分也涉及到点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56144495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档