从字符串SQL中检索数值

时间:2014-01-10 09:50:51

标签: sql sql-server string select

我在表Property中有一列Order。我们曾在此列中存储dictionary(varchar)。 我们现在有一个名为int的新列(ShoeSize),其默认值为0

所以我想要实现的只是从Property列中检索数值并使用该值更新ShoeSize列。

Property列值如下所示:

ShoeSize<|$à&£#>15<|@ç§~#>

ShoeSize<|$à&£#>3<|@ç§~#>

我的问题是:
如何在select语句中操作我的SQL以仅选择Property列的数值?换句话说,我怎么才能最终得到153

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您使用的是MSSQL且格式已修复,那么您可以尝试以下方式

DECLARE @str VARCHAR(50)
SET @str = 'ShoeSize<|$à&£#>15<|@ç§~#>'
SELECT SUBSTRING(@str,CHARINDEX('£#>',@str) + 3, CHARINDEX('<|@',@str) - (CHARINDEX('£#>',@str) + 3))

答案 1 :(得分:0)

您可以使用REGEXP_SUBSTR从字符串中提取数字。

例如,

SELECT REGEXP_SUBSTR('ShoeSize<|$à&£#>15<|@ç§~#>','[[:digit:]]+') FROM dual;

将返回15给你。当然,我的假设是你的字符串中的鞋子大小是一个数字,你的意图是不要整理你的字符串中出现的所有数字来得到你将保存为鞋子尺寸的数字