我想从此查询中提取特定的数字值...
专栏:名称 这个例子有四行:
我只想要整数值。我想查询:
模式是:
如何在SQL查询上使用此正则表达式来解析属性值?
SELECT FROM myTable
SUBSTRING(name, (PATINDEX('%[0-9]%', [name])),4) as peso
这提取了一些值,但是没有按正确的顺序...我认为我可以应用LEFT长度直到整数值,但我不知道如何解决它。
答案 0 :(得分:0)
你很亲密。在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;
答案 1 :(得分:0)
CONVERT(
INT,
(REPLACE(
SUBSTRING(
nome,
(
PATINDEX(
'%[0-9]%',
REPLACE(
REPLACE(
nome,
'1/2',
''
),
'1/4',
''
)
)
),
4
),
'G',
''
))) as pesoTotal
这解决了这个问题,谢谢。
答案 2 :(得分:0)
如果它们始终使用相同的模式,则应该类似于SUBSTRING(name, PATINDEX('%[0-9][0-9][0-9][0-9][G ][GR]%', name),4)
。会得到一些误报(例如“ 1400 Rhinos”,“ 3216GGG”等)。