2015-11-04 40 views

回答

1

这是它 - 文字部分和数字部分:

DECLARE @String VARCHAR(50) = '059 - Gaffey Stop.' 

SELECT SUBSTRING(@String , CHARINDEX('-' , @String) + 1, LEN(@String)) AS LetterPart, 
CAST(LEFT(@String, PATINDEX('%[^0-9]%', @String+'.') - 1) AS INT) AS NumPart 
2

试着这么做....

Declare @String VARCHAR(50) = '059 - Gaffey St.' 

Select SUBSTRING(@String , CHARINDEX('-' , @String) + 1, LEN(@String)) 

编辑

只得到59没有前导零

Select CAST(LEFT(@String , CHARINDEX('-' , @String) - 1) AS INT) 
+0

以及如何只获得作为结果,如果59..skipping 0在前面 – user1030181

0

您应该能够使用类似:


substring('059 - Gaffey St.', charindex('-', '059 - Gaffey St.') + 1, len('059 - Gaffey St.')) 

您可能希望通过LTRIM将其包围(RTRIM(...))至删除最终的空间。