+1 for Gordon's answer. This is a fun problem that you can solve using TRANSLATE if you're using SQL 2017+. 
First, in case you've never used it, Per BOL TRANSLATE:
Returns the string provided as a first argument after some characters
  specified in the second argument are translated into a destination set
  of characters specified in the third argument.2
This:
SELECT TRANSLATE('123AABBCC!!!','ABC','XYZ');
Returns: 123XXYYZZ!!!
Here's the solution using TRANSLATE:
-- Sample Data
DECLARE @t TABLE (ID_Sample CHAR(6))
INSERT @t (ID_Sample) VALUES ('AB001'),('BC003'),('AB100'),('BC400'),('CC555');
-- Solution
SELECT 
  ID_Sample     = t.ID_Sample,
  ID_Sample_Int = s.NewString
FROM         @t AS t
CROSS JOIN  (VALUES('ABCDEFGHIJKLMNOPQRSTUVWXYZ', REPLICATE(0,26)))     AS f(S1,S2)
CROSS APPLY (VALUES(TRY_CAST(TRANSLATE(t.ID_Sample,f.S1,f.S2) AS INT))) AS s(NewString)
WHERE        s.NewString >= 100;
Without the WHERE clause filter you get:
ID_Sample ID_Sample_Int
--------- -------------
AB001     1
BC003     3
AB100     100
BC400     400
CC555     555
... the WHERE clause filters out the first two rows.