Does anyone have a suggestion on how to mask out data for a key field in a table?

I have exhausted a number of different options. Creating a view works just fine, except for when you need to use a WHERE clause. If the key field in the select is masked, then the WHERE clause on the view can't find a match.

For example:

CREATE VIEW Test_v AS
SELECT Decode( key_field, 'Manager', '---', key_field ), dept
FROM Test_Table;

This works just fine:
Select * from Test_v

But this does not:
Select * from Test_v where key_field in
('Manager', 'Programmer', 'Consultant' );
Rows for Programmer and Consultant are returned, but the row for Manager is not with the key_field masked and the rest of the fields displayed.

I understand why this is happenning, the Where clause can't match up 'Manager' to '---'. The question is what to do to get this to work???