select *, case when isnumeric(left(number, 10)) = 1 then convert(int, left(number, 10)) when isnumeric(left(number, 9)) = 1 then convert(int, left(number, 9)) when isnumeric(left(number, 8)) = 1 then convert(int, left(number, 8)) when isnumeric(left(number, 7)) = 1 then convert(int, left(number, 7)) when isnumeric(left(number, 6)) = 1 then convert(int, left(number, 6)) when isnumeric(left(number, 5)) = 1 then convert(int, left(number, 5)) when isnumeric(left(number, 4)) = 1 then convert(int, left(number, 4)) when isnumeric(left(number, 3)) = 1 then convert(int, left(number, 3)) when isnumeric(left(number, 2)) = 1 then convert(int, left(number, 2)) when isnumeric(left(number, 1)) = 1 then convert(int, left(number, 1)) else 0 end from oMain where case when isnumeric(left(number, 10)) = 1 then convert(int, left(number, 10)) when isnumeric(left(number, 9)) = 1 then convert(int, left(number, 9)) when isnumeric(left(number, 8)) = 1 then convert(int, left(number, 8)) when isnumeric(left(number, 7)) = 1 then convert(int, left(number, 7)) when isnumeric(left(number, 6)) = 1 then convert(int, left(number, 6)) when isnumeric(left(number, 5)) = 1 then convert(int, left(number, 5)) when isnumeric(left(number, 4)) = 1 then convert(int, left(number, 4)) when isnumeric(left(number, 3)) = 1 then convert(int, left(number, 3)) when isnumeric(left(number, 2)) = 1 then convert(int, left(number, 2)) when isnumeric(left(number, 1)) = 1 then convert(int, left(number, 1)) else 0 end between 1100 and 3000This tests the number field from right to left and takes the most information it can that would be deemed as a single number. Granted, this would not pickup numbers that start with a letter, but just something else for you to keep in mind as you get ready to do your conversion.