1

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

例如

StreetName 11A-D

我想收到结果:

StreetName

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

有什么建议么?

4

3 回答 3

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

结果:

StreetName
StreetName
于 2013-11-01T11:50:05.050 回答
3
SELECT RTRIM(SUBSTRING('StreetName 11A-D', 1, PATINDEX('%[0-9]%','StreetName 11A-D')-1))
于 2013-11-01T11:50:58.753 回答
3

请试试:

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

Select SUBSTRING(@var, 1, PatIndex('%[0-9]%', @var)-1)
于 2013-11-01T11:51:12.680 回答