As Craig mentioned, this isn't possible without bringing the value over persistently somehow. The reason is our query is always against the main object (such as WORKORDER) and doesn't join any of the child tables (IE left join asset on asset.assetnum=workorder.assetnum and asset.siteid=workorder.siteid). Without joining the objects, we can't do an order by from a child table.
We can filter child objects because we build an exists statement based on the relationship and your filter (IE exists(select * from asset where asset.assetnum=workorder.assetnum and asset.siteid=workorder.siteid and asset.description like '%my search%')).
With the REST API, we added the ability to sort through relationships and non-persistent attributes but that's performed entirely in memory so only works well with relatively small data sets. You wouldn't want to use it to sort millions of records for example.
Our new Maximo Application Framework (Graphite) also renders tables where searches and ordering of columns can occur on the client side as long as we have all the data. Some of these issues will go away as we move more applications over to that framework but it will take time to get our applications moved over to the new framework.
------------------------------
Steven Shull
------------------------------