если между буквой и цифрой всегда есть пробел, попробуйте:
DECLARE @String varchar(100)
SET @String='ABC 123'
SELECT LEFT(@String,LEN(@String)-CHARINDEX(' ',@String))
OUTPUT
-------------------
ABC
(1 row(s) affected)
РЕДАКТИРОВАТЬ после комментария OP, не предполагает пробела перед цифрами:
DECLARE @String varchar(100)
SET @String='ABCD123'
;with Numbers AS
(
SELECT 1 AS Number,ISNUMERIC(SUBSTRING(@String,1,1)) AS Digit
UNION ALL
SELECT Number+1,ISNUMERIC(SUBSTRING(@String,Number+1,1)) AS Digit
FROM Numbers
WHERE Number<LEN(@String)
)
SELECT LEFT(@String,MAX(Number)) FROM Numbers WHERE Digit=0
--OPTION (MAXRECURSION n) --if the string is longer than 100 characters uncomment this and set "n" to the string length
ВЫВОД:
-------------------
ABCD
(1 row(s) affected)