То, что вы ищете, называется динамическим SQL, об этом написано множество статей, вам нужно использовать sp_executesql, если вы используете SQL Server
здесь есть пример здесь для чего-то похожего на то, что вы пытаетесь сделать
ваше решение должно выглядеть примерно так
DECLARE @carIdSql NVARCHAR(255),
@sql NVARCHAR(MAX),
@ParamDefinition NVARCHAR(MAX),
@numberOfRecords BIGINT
SET @carIdSql='Select CarId from CarData';
SET @sql =
N'SELECT @numberOfRecordsOUT = COUNT(*)
FROM Car WHERE CarId not in (' + @carIdSql + ')'
SET @ParamDefinition = '@numberOfRecordsOUT BIGINT OUTPUT';
EXECUTE sp_executesql
@sql,
@ParamDefinition,
@numberOfRecordsOUT = @numberOfRecords OUTPUT;
SELECT @numberOfRecords