Member 13810967 Ответов: 2

Как получить только числовые значения из строки


Как получить числовое значение из строки в SQL

Что я уже пробовал:

Я пробовал с patindex, но я не могу повторить цикл

2 Ответов

Рейтинг:
2

GKP1992

То, что вы хотите сделать, не будет достигнуто каким-то базовым ПАТИНДЕКСОМ, вам нужно будет запустить цикл для строки и получить из него каждое числовое значение. Рассмотрим в качестве примера следующую функцию SQL.

CREATE FUNCTION NumbersFromString (@string VARCHAR(100))
RETURNS VARCHAR(100)
AS
   BEGIN
     DECLARE @loc INT
     --Get the location of the first letter in the string that is not a number.
     SET @loc = PATINDEX('%[^0-9]%', @string )
       BEGIN
         --Iterate till there is a non-numeric letter in the string.
         WHILE @loc > 0
           BEGIN
             --Replace the letter found at the location with ''.
             SET @string = STUFF(@string , @loc, 1, '' )
             --Set location to next letter.
             SET @loc = PATINDEX('%[^0-9]%', @string )
           END
       END
       --Return result.
       RETURN ISNULL(@string, 0)
    END;


Maciej Los

Вот это да!

GKP1992

Спасибо снова.