提取REGEXP子字符串SQL Server

问题描述

CONVERT(
INT, 
(REPLACE(
    SUBSTRING(
        nome,
        (
            PATINDEX(
                '%[0-9]%',
                REPLACE(
                    REPLACE(
                        nome,
                        '1/2',
                        ''
                    ),
                    '1/4',
                    ''
                )
            )
        ),
        4
    ),
    'G',
    ''
))) as pesototal

这样解决了问题,谢谢。

解决方法

我想从此查询中提取特定的数字值…

列:名称此示例有四行:

  • 1/2产品1 some_description 1200 GR更多数据…(UND)
  • 1/4 Product2 some_description 2400G更多数据(KG更多数据)
  • 商品3 some_description 2200 GRS更多数据…
  • 1/4产品4 some_description 1800GR更多数据UND …

我只想要整数值。我想要查询:

  • 1200
  • 2400
  • 2200
  • 1800

模式是:

  • [0-9] {4} G
  • [0-9] {4} GR
  • [0-9] {4} GRS

如何在SQL查询上使用此正则表达式来解析属性值?

SELECT FROM myTable SUBSTRING(name,(PATINDEX('%[0-9]%',[name])),4) as peso

这会提取一些值,但顺序不正确…我认为我可以将LEFT的长度应用到整数值,但是我不知道如何解决它。