sql - 如何使用正则表达式获取表中列行的子字符串
问题描述
我正在尝试压缩描述列以仅显示 Postgresql 中的重要信息。我想出了这个:
select description, substring(description from '.{0,5}base.{0,5}') as minidesc
from cbp.export_final
where product_code in ('LU016', 'LU017', 'LU018', 'LU019', 'LU020')
limit 1000;
但是,子字符串不会提取任何内容。谁能帮助解释为什么这不起作用?
解决方案
看起来你只需要让你的搜索不区分大小写。为此,您可以使用选项i
(nsensitive) 作为前缀:
substring(description from '(?i).{0,5}base.{0,5}') as minidesc
with export_final as (
select
'1 PACKAGE(S) OF (FLEXITANK) BASE OIL PALE 2000 (HARMONIZED CODE: 270799)' description,
'LU016' product_code
)
select description, substring(description from '(?i).{0,5}base.{0,5}') as minidesc
from export_final
where product_code in ('LU016', 'LU017', 'LU018', 'LU019', 'LU020')
描述 | 迷你DESC :------------------------------------------------ ---------------------- | :------------- 1 包(FLEXITANK)基础油淡色 2000(统一代码:270799)| ANK) 基础油
您可能还需要考虑以下正则表达式,它为您提供前后的单词'base'
- 一个被定义为字母数字字符加上下划线字符 ( _
) 的单词:
(?i)\w+\W+base\W+\w+
对于您的示例数据,这会产生:
FLEXITANK) BASE OIL
推荐阅读
- java - 如何覆盖 UserDetails 以使用角色?
- postman - Postman Runner 期间未正确设置环境变量
- angular - Laravel如何使用post方法插入数据?
- csv - 在 Power Automate 中将德语格式的 CSV 转换为 xlsx
- c# - 离开 ComboBox 时如何触发?
- python - 从子目录导入模块会导致它在其目录中找不到其他模块
- python - 熊猫从上面的行复制值
- python - 如何在 discord.py 中将多个单词设置为单个命令?
- sql - 使用 A 列对记录进行计数和分组,并使用 where 子句对 B 列进行计数
- javascript - 获取深层嵌套对象结构中的父、祖父和键