如何获取SQL表的一行中的文本行中出现的数字?

时间:2015-04-03 05:49:33

标签: sql substring

我有一行这样的文字: -

" Chaitanya有10卢比。"

我需要显示数字10作为结果。

每次都不会有相同的字符。

5分钟后,该行将更改为: -

" Chaitanya将获得10卢比。"

所以这里句子的长度会发生变化。 但我需要得到10的结果。 我需要帮助。

我尝试了一些代码,但它没有用。我尝试的代码是: -

SELECT TOP 1 FROM ALARMS WHERE S.SUBSTRING(Text,26,2) ORDER BY [EventTime] DESC

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用LIKE:

SELECT CASE WHEN 'FDAJLK' LIKE '%[0-9]%' THEN 'True' ELSE 'False' END;  -- False
SELECT CASE WHEN 'FDAJ1K' LIKE '%[0-9]%' THEN 'True' ELSE 'False' END;  -- True

答案 1 :(得分:0)

可能这会对你有所帮助。它假设你有数字后的空格。它会选择第一个数字:

SELECT  CASE WHEN PATINDEX('%[0-9]%', @s) = 0 THEN NULL
             ELSE SUBSTRING(@s, PATINDEX('%[0-9]%', @s),
                            CHARINDEX(' ', @s, PATINDEX('%[0-9]%', @s))
                            - PATINDEX('%[0-9]%', @s))
        END