CAST with error handling
JavaScript
DECLARE @test AS TABLE
(
[Val] NVARCHAR(255)
);
INSERT INTO @test VALUES ('123');
INSERT INTO @test VALUES ('0');
INSERT INTO @test VALUES ('NULL');
INSERT INTO @test VALUES ('');
INSERT INTO @test VALUES (NULL);
SELECT
CASE
WHEN ISNUMERIC([Val]) = 1
THEN CAST([Val] AS INT)
ELSE NULL
END AS [Int value]
FROM @test;