sql - .REGEXP_REPLACE 用于在列中添加值
问题描述
我想将“Shri_”添加到客户表的 First_name 中,仅适用于开头没有“Mr_”的名称。客户表数据如下图:
我正在使用下面的脚本,但它没有帮助。
update customers set first_name = REGEXP_REPLACE(first_name,'^(?!Mr_)(.*)', 'Shri_\2',1,1);
谁能指出我的正则表达式有什么问题。更具体地说,我正在尝试为这种情况找出正确的正则表达式。
解决方案
正则表达式相当复杂;您可以通过以下方式更简单地解决此问题:
UPDATE customers
SET first_name = 'Shri_' || first_name
WHERE first_name NOT LIKE 'Mr\_%' ESCAPE '\'
我怀疑问题是 _ 是通配符,但它可以像上面一样被转义,所以它不再意味着“任何单个字符”,而只是“下划线”
推荐阅读
- android - 修复更新后显示错误的 android studio Firebase 广告库
- python - 尝试运行烧瓶项目的测试,但得到 [Errno 2] No such file or directory: 'requirements.txt' 错误:进程完成,退出代码 1
- android - Android Room Database:在子线程中初始化数据库导致界面冻结
- android - 在 android 模拟器中运行用颤振制作的应用程序的问题。问题 - com.jcraft.jsch.JSchException
- r - 在 R 编程中使用模式和表达式从文本文件中提取多个数据帧
- node.js - Docker 或 nodemon:重新加载问题
- google-sheets - 旨在检查另一列的 Google 表格公式不会给出错误但不起作用
- netsuite - 无法使用 setCurrentSublistValue 更改子列表字段
- javascript - 如何将 vue-i18n 的 $t 函数注入 cy 对象(cypress 全局对象)
- reactjs - 如何获取下拉 React 的特定 ID?