I'm not sure what you're trying to accomplish with an "ORDER BY". If you are trying to keep the rows in that order in the table, that is contrary to the way Teradata stores data in a table. Teradata distributes the rows according to the hash value of the primary index and then keeps the rows in hash order within each data block.
I would suggest that you remove the "ORDER BY" add a "PRIMARY INDEX" clause to your statement. Otherwise, Teradata will make the first column of the table the primary index, which may not be a good choice.
You shouldn't select your primary index based on the "ORDER BY" you will be specifying in your queries. Teradata always sorts the rows to accomplish the "ORDER BY" in a query. Unlike other DBMS's you may have worked with, the sorting on Teradata is very fast because each AMP sorts only it's rows and then a "merge" is done to merge the sorted rows from all of the AMPs.
Choose the primary index based on either a unique or somewhat unique column or set of columns. As a very general rule of thumb, a particular primary index value should point to a few hundred rows or less.
Teradata has a "value-ordered" index (it's a type of secondary index, not a primary index option), but it is only used for the selection of rows (i.e. range selections), not the sorting of rows. So, even a value-ordered index would not help you in this case.