2013-11-01 2 views
1

Мне нужно изолировать текст до первого числа в столбце, используя T-SQL в SQL Server.Возврат первого символа в строке, которая является номером

E.g.

StreetName 11A-D 

Я хотел бы получить результат:

StreetName 

Моя задача состоит в том, чтобы выяснить, какой символ номер первый числовой есть.

Любые предложения?

+1

MS Sql имеет функцию под названием PATINDEX, что позволяет сочетать регулярные выражения с SQL. –

ответ

3

Пожалуйста, попробуйте:

declare @var nvarchar(100)='StreetName 11A-D'; 

Select SUBSTRING(@var, 1, PatIndex('%[0-9]%', @var)-1) 
3
select left(street, patindex('%_[0-9]%', street + '1')) 
from (
select 'StreetName 11A-D' street 
union all 
select 'StreetName' street 
) x 

Результат:

StreetName 
StreetName 
+0

причиной моего «странного» синтаксиса является предотвращение ошибок, подобных другим решениям. Также я ожидаю, что текст типа «StreetName» не должен приводить к пустым текстам –

3
SELECT RTRIM(SUBSTRING('StreetName 11A-D', 1, PATINDEX('%[0-9]%','StreetName 11A-D')-1)) 
Смежные вопросы