Во-первых: если вы основываете свою вставку на SELECT, то не должны использовать предложение VALUES
.
Чтобы получить условное значение, используйте оператор CASE (стандарт ANSI):
insert into new_table (new_col1, new_col2)
select old_col1,
case
when old_col2 = 'Yes' then 1
else 0
end
from old_table
Оператором decode () будет только более компактная форма (но я бы порекомендовалиспользуйте CASE, потому что он более читабелен и переносим на другие СУБД)
insert into new_table (new_col1, new_col2)
select old_col1,
decode(old_col2, 'Yes', 1, 0)
from old_table