Да, и нет :-)
сам SQL не все равно, что заказать колонны выходят в России, но, если бы вы использовали:
select age, name, sex from ...
вы обнаружите, что они, вероятно, вышло в этом порядке (хотя я не уверен, что стандарты SQL соответствуют этому).
Теперь вы можете не хотите сделать это, но иногда жизнь не справедлива :-)
У вас также есть другая возможность использования таблиц определения данных СУБД для динамического создания запроса. Это не переносится, но большинство СУБД поставляют эту таблицу (например,), и вы можете выбрать имена столбцов оттуда упорядоченным образом. Что-то вроде:
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.
Однако, вы действительно должны критически проанализировать все запросы, которые выбирают *
- в подавляющем большинстве случаев это не нужно и неэффективно. И представление данных - это то, что, вероятно, должно быть сделано уровнем представления, а не самой СУБД - необходимо, чтобы СУБД оставалась для того, чтобы как можно более эффективно возвращать данные.
Хмм, я думаю, мне нужно прибегнуть к хорошему старым методам сортировки строк: –
Я согласен с этим, НИКОГДА не используйте * в производственном коде. Вы никогда не знаете, когда кто-то позже добавляет некоторый столбец, который НЕ должен быть указан, например, для обеспечения безопасности. Всегда создавайте запрос для извлечения только нужных столбцов. И если вы хотите сделать это динамически, сделайте это, но обязательно обратите внимание на это очень заметно для других разработчиков. –
Еще одно, если использование SQL-представлений * имеет больше побочных эффектов в том случае, если базовые таблицы изменены (новый или удаленный столбец), представление не обновляется, поэтому может не отображаться новые столбцы. Существующие столбцы могут быть заменены, поскольку выбор вида столбца по индексу, который они имели при создании представления. –