How to create a table with a field 99% INT; 1% STR values?
Apparently you want to store some kind of range where most of the ranges just contain a single element and one of them is open ended. 

You did not explain how you want to use those values. 

If you only use them for display purposes and never, ever under no circumstance (ever!) have to do any calculations on them, a text column might be enough. 

However, I have never encountered a situation where numbers weren't intended to be treated as numbers in the long run. 

Depending on how you use the values, I can think of two solutions: either use a range type where most ranges only contain a single element. Whether or not that makes sense depends on the way you use that value. Maybe the 20 single values actually mean a range from 1 to 20 - it's hard to tell from your question

Or use a two columns: one integer and one indicating the "and above". If you only have the choice between "exactly that value" and "that value and above", I would probably use a boolean column that indicates that the value is the lower end of a range.