How to get the numeric part from a string using T-SQL?
sql, sql-server
Solution
select left(@str, patindex('%[^0-9]%', @str+'.') - 1)
Problem
I have the following string. ``` Input -------------- 2030031469-NAI ``` To get the numeric part, I am using the following script ``` declare @str varchar(50)= '2030031469-NAI' Select @str ,SUBSTRING(@str, 1, NULLIF(CHARINDEX('-', @str) - 1, -1)) ,Left(@str,PATINDEX('%-%',@str)-1) ``` to get the following output ``` Output: ---------- 2030031469 ``` Is there any other easy/elegant way of doing the same?