Yes, it is possible to have only one price list displayed on the website when an item is on sale. You can achieve this by using the B to C - Price Lists module, or by creating a custom solution using the website builder in Odoo.
Here are the steps to achieve this:
Create a new price list that includes the sale prices for your inventory products.
Assign this price list to the customer group that will be able to see the sale prices.
On the website, you can create a custom template that will check if a product is on sale (based on the fields you use to indicate that the product is on sale) and if it is, it will only display the sale price list.
If the product is not on sale, you can set a condition in the template that will hide the price list, so that the customer will only see the regular price.
You can also use the existing ecommerce module that odoo offers, in this case you can use the pricelists option that it offers, and you can assign it to a specific pricelist, so when a customer log in, he will see only the prices that are assigned to that pricelist.
It's worth noting that creating custom solutions require developer's help and it's not a simple task, you should consider the complexity of the task and the time it will take to implement it.