返回字符串中的第一个字符,即数字

时间:2013-11-01 11:46:28

标签: sql sql-server

我需要在SQL Server中使用T-SQL在列中的第一个数字之前隔离文本。

E.g。

StreetName 11A-D

我想收到结果:

StreetName

我的挑战是找出第一个数字是哪个字符编号。

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

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

结果:

StreetName
StreetName

答案 1 :(得分:3)

SELECT RTRIM(SUBSTRING('StreetName 11A-D', 1, PATINDEX('%[0-9]%','StreetName 11A-D')-1))

答案 2 :(得分:3)

请尝试:

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

Select SUBSTRING(@var, 1, PatIndex('%[0-9]%', @var)-1)