Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
glpita
Starting Member
17 Posts |
Posted - 2010-02-10 : 14:22:15
|
| Hi,I need to write a query to select only the number from a field like this:TWO STORY MASONRY (12) UNIT BLDG orONE STORY TIMBER 3 UNIT BLDGAny ideas?Thanks |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2010-02-10 : 14:48:18
|
here's a two step solutionSELECT STUFF(Val1,PATINDEX('%[^0-9]%',Val1),LEN(Val1),'')FROM(SELECT Val,STUFF(Val,1,PATINDEX('%[0-9]%',Val)-1,'') As Val1FROM(SELECT 'TWO STORY MASONRY (12) UNIT BLDG' AS Val UNION ALL SELECT 'ONE STORY TIMBER 3 UNIT BLDG' )t)r------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
jimf
Master Smack Fu Yak Hacker
2875 Posts |
Posted - 2010-02-10 : 14:49:21
|
| DECLARE @inString varchar(100)DECLARE @outString varchar(10)DECLARE @outNumber intSET @inString = 'ONE STORY TIMBER 3 UNIT BLDG'SET @outString = ''WHILE LEN(@instring)> 0BEGIN IF SUBSTRING(@inString,1,1) LIKE '%[0-9]%' SET @outString = @outString + SUBSTRING(@inString,1,1) SET @inString = Substring(@instring,2,100)ENDSET @outNumber = convert(int,@outStringI'm sure there's a way to do this without the while loop, but this will for nowJimEveryday I learn something that somebody else already knew |
 |
|
|
jimf
Master Smack Fu Yak Hacker
2875 Posts |
Posted - 2010-02-10 : 14:55:55
|
| Man, I hit F5 several times before I went ahead and posted!DECLARE @inString varchar(100)DECLARE @outString varchar(10)DECLARE @outNumber intSET @inString = 'TWO STORY MASONRY (12) UNIT BLDG'SET @outString = '' SELECT @outString = @outString + CASE WHEN substring(@inString,spt.number,1) like '[%0-9%]' THEN substring(@inString,spt.number,1) ELSE '' ENDFROM master..spt_values sptWHERE spt.[type] = 'P' and spt.number < LEN(@inString)SET @outNumber = convert(int, @outstring)SELECT @outnumberJimEveryday I learn something that somebody else already knew |
 |
|
|
glpita
Starting Member
17 Posts |
Posted - 2010-02-10 : 19:53:50
|
Thanks a lot guys |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2010-02-11 : 00:09:20
|
welcome ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
|
|
|
|
|
|
|