Это должно делать то, что вы хотите в любой поддерживаемой версии SQL Server:
select idNumber, stuff(idNumber, 1, patindex('%[0-9]%', idNumber) - 1, '')
Здесь - это дБ <> скрипка.
В SQL Server 2000 - который долгое время не поддерживали - вы можете сделать что-то более грубое:
select (case when idNumber like '[0-9]%' then idNumber
when idNumber like '_[0-9]%' then substring(idNumber, 2, len(idNumber))
when idNumber like '__[0-9]%' then substring(idNumber, 3, len(idNumber))
when idNumber like '___[0-9]%' then substring(idNumber, 4, len(idNumber))
. . . -- however many clauses you need
end)
или используя LIKE
:
select (case when left(idNumber, 1) between '0' and '9' then idNumber
when substring(idNumber, 2, 1) between '0' and '9'
then substring(idNumber, 2, len(idNumber))
when substring(idNumber, 3, 1) between '0' and '9'
then substring(idNumber, 3, len(idNumber))
when substring(idNumber, 4, 1) between '0' and '9'
then substring(idNumber, 4, len(idNumber))
. . . -- however many clauses you need
end)