“Tại” is a preposition. We use it before a noun to show a place, a location. In this case, ‘tại’ and ‘ở’ have the same meaning but when we use “tại”, it will be more specific and emphasize. “Tại” is also used when you want to talk about a reason. For example, “Tại vì trời mưa to nên tôi không thể đến trường.” (= Because of heavy rain, I could not go to school)
"Ở" can be a verb or a preposition. I wrote down some situations which we had to use “ở” instead of “tại”
- Tôi đang ở nhà (= I’m staying at home); normally, Vietnamese people don’t say “Tôi đang tại nhà”. So “ở” can be used like “live” or “stay”.
- Ở lại đây với tôi = Stay with me
“Người ơi, người ở đừng về”-> This is an interesting proverb which means “Darling, please stay with me, don't go” But you can say it to your friends to make them laugh ^^
- Sách ở trên bàn (= Book is on the table). Please do not say “Sách tại trên bàn”. I think “Ở” can be used to show a position. (I’m not so sure “a position” is a correct word to explain)
- Ở hiền gặp lành (= One good turn deserves another). “Ở” means your attitude, your behavior.
Note: Because Ở is a verb so if we just use ở, the sentence still has a full meaning but if we only just tại, the sentence is unclear or make confusing.