разбить строку только на два столбца - PullRequest
2 голосов
/ 02 апреля 2019

У меня есть строка с надписью «20 лет в Германии», которую нужно разбить на два столбца с помощью SQL. Один столбец содержит число 20, а второй - строку «годы в Германии».

Я использовал функцию string_split, используя пробел в качестве символа разделения. Тем не менее, проблема в том, что я получаю два много значений из раскола.

declare @message varchar(100) = '20 years in Germany';
select
(
select top 1 [value] from string_split([value], ' ') order by value asc -- get the number 20 in the string
)


My desired result is two columns 

------------- ----------------
20            years in Germany

1 Ответ

2 голосов
/ 02 апреля 2019

Попробуйте PATINDEX

DECLARE @str VARCHAR(MAX) = '20 years in Germany' 

SELECT LEFT(@str, PATINDEX('%[0-9][^0-9]%', @str )) AS Number,
       LTRIM(RIGHT(@str, LEN(@str) - PATINDEX('%[0-9][^0-9]%', @str ))) As word

выход

Number  word
20      years in Germany
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...