2013-11-01 118 views
1

我需要在使用SQL Server中的T-SQL的列中的第一個數字之前隔離文本。返回字符串中的第一個字符,其編號爲

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

我奇怪的語法的原因是爲了防止像其他解決方案會導致的錯誤。另外我希望像「街道名稱」這樣的文本不應該導致空白文本 –

3
SELECT RTRIM(SUBSTRING('StreetName 11A-D', 1, PATINDEX('%[0-9]%','StreetName 11A-D')-1)) 
相關問題