SELECT DISTINCT percentile_disc(0.5) WITHIN GROUP(ORDER BY Number) OVER() FROM TABLE
If you want to get a single value, I'm not sure why you are expressing this as a table. I would expect code like this:
DECLARE @median NUMERIC(20, 4);
SELECT TOP (1) @median = round(percentile_disc(0.5) WITHIN GROUP (ORDER BY Number) OVER(), 4)
FROM @table;
SELECT @median;