I'd say that's more a problem with the application than the query. You should never create an application that expects data in a structured or numerically indexed manner, unless you're dealing with SDF, EDI, or some other structured format (all of which are antiquated, btw).
Modern software development handles data storage & transfer with descriptors assigned to each element of data. This means your application should retrieve values from your database using field-names rather than numerical index. Doing so will prevent any of the issues you've presented in cases where table structures or queries change, so no reason not to!
Also good to note here that using a structured DAL / Model will avoid any issues with database changes, as your application will reference an abstracted data layer, which should auto-adjust to any database changes you make (depending on what framework you use).