Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:

Convert text to sql: Show the product type codes that have both products with price higher than 4500 and products with price lower than 3000. | addresses : address_id , address_details | locations : location_id , other_details | products : product_id , product_type_code , product_name , product_price | parties : party_id , party_details | assets : asset_id , other_details | channels : channel_id , other_details | finances : finance_id , other_details | events : event_id , address_id , channel_id , event_type_code , finance_id , location_id | products_in_events : product_in_event_id , event_id , product_id | parties_in_events : party_id , event_id , role_code | agreements : document_id , event_id | assets_in_events : asset_id , event_id | events.finance_id = finances.finance_id | events.address_id = addresses.address_id | events.location_id = locations.location_id | products_in_events.product_id = products.product_id | products_in_events.event_id = events.event_id | parties_in_events.event_id = events.event_id | parties_in_events.party_id = parties.party_id | agreements.event_id = events.event_id | assets_in_events.event_id = events.event_id | assets_in_events.event_id = events.event_id | 

### Response:

select _ from _ where _ intersect select _ from _ where _ | select product_type_code from products where product_price > 4500 intersect select product_type_code from products where product_price < 3000