I understand that Non-SQL field can not be used for filtering or sorting. Can it be used as a condition in the workflow? And adding Non-SQL doesn't need to modify the physical structure of the database. It seems this is a better way to add a field without breaking the recipient table. Please advise what is the best practice to add fields.
Assuming 'Non-SQL' fields are xml calculated fields, those are just xml elements in the 'data' clob.
They can't really be used for much outside of payload, and so in nearly all cases you'll want to use ordinary sql columns, even the ones where the fields are payload.