Да, и нет: -)
Самому SQL не важно, в каком порядке выводятся столбцы, но, если бы вы использовали:
select age, name, sex from ...
, вы найдетечто они, вероятно, вышли в таком порядке (хотя я не уверен, что стандарты SQL требуют этого).
Теперь вы не можете хотеть сделать это, но иногда жизнь не справедлива: -)
У вас также есть другая возможность использования таблиц определения данных СУБД для динамического построения запроса.Это непереносимо, но большинство СУБД предоставляют эти таблицы (например, DB / 2 SYSIBM.SYSCOLUMNS
), и вы можете выбрать имена столбцов оттуда упорядоченным образом.Что-то вроде:
select column_name from sysibm.syscolumns
where owner = 'pax' and table_name = 'movies'
order by column_name;
Затем вы используете результаты этого запроса для построения реального запроса:
query1 = "select column_name from sysibm.syscolumns" +
" where owner = 'pax' and table_name = 'movies'" +
" order by column_name"
rs = exec(query1)
query2 = "select"
sep = " "
foreach colm in rs:
query2 += sep + colm["column_name"]
sep = ", "
query2 += " from movies order by rating"
rs = exec(query2)
// Now you have the rs recordset with sorted columns.
Однако вы действительно должны критически проанализировать все запросывыберите *
- в подавляющем большинстве случаев это не нужно и неэффективно.А представление данных - это то, что, вероятно, следует делать на уровне представления, а не в самой СУБД - необходимо оставить СУБД для возврата данных настолько эффективным способом, насколько это возможно.