首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PostgreSQL中提取后跟特定字符串的数字?

如何在PostgreSQL中提取后跟特定字符串的数字?
EN

Stack Overflow用户
提问于 2018-07-26 07:14:18
回答 1查看 233关注 0票数 2

我有下表:

代码语言:javascript
复制
CREATE TABLE test_regex (
    drug TEXT
);

INSERT INTO test_regex
VALUES
    ('DRUGA 200 MG'),
    ('DRUGB 150 MCG'),
    ('DRUGC 1.5 GM BOX'),
    ('DRUGD 27.2 MG/5 ML VIAL')
;

我想提取以下内容:

代码语言:javascript
复制
200 MG
150 MCG
1.5 GM
27.2 MG

到目前为止,我尝试了以下几点:

代码语言:javascript
复制
SELECT
    substring(drug, '[0-9]*\.?[0-9]* MG|GM|MCG')
FROM
    test_regex
;

这会导致:

代码语言:javascript
复制
 200 MG
 MCG
 GM
 27.2 MG

我也尝试过:

代码语言:javascript
复制
SELECT
    substring(drug, '[0-9]*\.?[0-9]* (MG|GM|MCG)')
FROM
    test_regex
;

结果如下:

代码语言:javascript
复制
 MG
 MCG
 GM
 MG

我认为问题在于如何处理尾随的(MG|GM|MCG)组,但我在PostgreSQL文档中找不到我想要的东西。我希望得到第一个数字部分,然后是一个空格,然后是MG、GM或MCG。我认为它被归类为带有MG的数字表达式,然后是GM或MCG。

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

https://stackoverflow.com/questions/51528906

复制
相关文章

相似问题

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