My question is how would I change the order of the column display...
Probably the simplest way would be to use a proxy model, derived from QAbstractProxyModel or one of its derived classes. The methods you would need to override are mapFromSource() / mapToSource() where you swap the columns appropriately. If you want to exclude rows / columns that are in the SQL model, then you should use QSortFilterProxyModel as the base class for your derived model, and implement the filterAcceptsRow() / filterAcceptsColumn() methods.