我在表Property
中有一列Order
。我们曾在此列中存储dictionary(varchar)
。
我们现在有一个名为int
的新列(ShoeSize
),其默认值为0
。
所以我想要实现的只是从Property
列中检索数值并使用该值更新ShoeSize
列。
Property
列值如下所示:
ShoeSize<|$à&£#>15<|@ç§~#>
或
ShoeSize<|$à&£#>3<|@ç§~#>
我的问题是:
如何在select语句中操作我的SQL以仅选择Property
列的数值?换句话说,我怎么才能最终得到15
或3
提前致谢。
答案 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给你。当然,我的假设是你的字符串中的鞋子大小是一个数字,你的意图是不要整理你的字符串中出现的所有数字来得到你将保存为鞋子尺寸的数字