quizas esto te sirva:
Código SQL:
Ver originalCREATE TABLE #temp
(
valor VARCHAR(20)
)
INSERT INTO #temp VALUES ('4')
INSERT INTO #temp VALUES ('2')
INSERT INTO #temp VALUES ('3')
INSERT INTO #temp VALUES ('1')
INSERT INTO #temp VALUES ('A1')
INSERT INTO #temp VALUES ('A2')
INSERT INTO #temp VALUES ('5')
INSERT INTO #temp VALUES ('6')
INSERT INTO #temp VALUES ('A3')
INSERT INTO #temp VALUES ('B1')
INSERT INTO #temp VALUES ('7')
SELECT CONVERT(VARCHAR(20),campo) FROM(
SELECT CASE WHEN isnumeric(valor)=1 THEN CONVERT(INT,valor) END campo FROM #temp
) AS t1 WHERE campo IS NOT NULL
UNION
SELECT * FROM(
SELECT CASE WHEN isnumeric(valor)=0 THEN valor END campo FROM #temp
) AS t1 WHERE campo IS NOT NULL
saludos!