[英]Extract REGEXP Substring SQL Server
我想从此查询中提取特定的数值...
列:名称 此示例的四行:
我只想要整数值。 我想要查询:
模式是:
我如何在 SQL 查询中使用此正则表达式来解析属性值?
SELECT FROM myTable SUBSTRING(name, (PATINDEX('%[0-9]%', [name])),4) as peso
这会提取一些值,但顺序不正确...我认为我可以将 LEFT 的长度应用到整数值,但我不知道如何解决它。
你很接近。 在 SQL Server 中,最简单的数据处理方法是:
select left(name, 4) as peso
from mytable t;
也就是说,前四个字符似乎是你想要的。
如果前四个字符可能不都是数字,那么您要使用patindex()
:
select left(name, patindex('%[^0-9]%', name + ' ') - 1) as peso
from myTable t;
CONVERT(
INT,
(REPLACE(
SUBSTRING(
nome,
(
PATINDEX(
'%[0-9]%',
REPLACE(
REPLACE(
nome,
'1/2',
''
),
'1/4',
''
)
)
),
4
),
'G',
''
))) as pesoTotal
这解决了这个问题,谢谢。
如果它们SUBSTRING(name, PATINDEX('%[0-9][0-9][0-9][0-9][G ][GR]%', name),4)
使用相同的模式。 会得到一些误报(“1400 Rhinos”、“3216GGG”等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.