no es la forma más eficiente pero intenta esto:
creas una funcion
Código:
CREATE FUNCTION dbo.fun_Numero (@codigo varchar(5))
RETURNS int AS
BEGIN
DECLARE @nro int;
IF @codigo LIKE '%[A-Z]'
SET @codigo = CAST( LEFT(@codigo, LEN(@codigo)-1) AS INT)
RETURN (CAST(@codigo as int))
END
luego creas la tabla con un campo calculado
Código:
create table nuevaTabla
(
codigo varchar(4),
nro AS dbo.fun_Numero(codigo)
)
al hacer select * from nuevaTabla ORDER BY nro; deberías ver el resultado
otra forma que me parece más eficiente y si usas SQL Server 2000 pero que no la he probado sería cambiando la intercalación de la tabla usando COLLATE