База данных Oracle: как выбрать все, но сначала вернуть определенные столбцы? - PullRequest
4 голосов
/ 15 марта 2012

Фон

У меня есть таблица базы данных оракула с большим количеством столбцов, к которым я выполняю некоторые запросы.

Я не знаю точно, какие данные я ищу в своем запросе, поэтому я хочу вернуть все столбцы, но я не хочу искать и проверять столбцы, которые, как я знаю, имеют смысл.

Вопрос

Предположим, что таблица (Таблица 1) содержит Столбец A, Столбец B, Столбец C .... Столбец Z -

Есть лиспособ по существу сказать «Выберите столбец C, столбец J, столбец F, столбец Q, а затем остальные столбцы из таблицы 1»?

Вещи, которые я пробовал

Сохранение с помощью псевдо-sql, выполняется:

Выбрать столбец C, столбец J, столбец F, таблица 1. * из таблицы 1

Не помогает, потому что, хотя я не помогаюобратите внимание на дубликаты, оракул видит их как неоднозначно определенные столбцы и, таким образом, возвращает ошибку.

Ответы [ 2 ]

14 голосов
/ 15 марта 2012

Нет хорошего и простого способа сделать это, кроме указания каждого столбца.

Но если вы не возражаете против дубликатов и , вам не нужны имена столбцов, вы можете создать псевдоним этих столбцов:

Select 
  ColumnC as ColumnC1, 
  ColumnJ as ColumnJ1, 
  ColumnF as ColumnF1,
  t.* 
from 
  Table1 as t

Просто для демонстрации, я также назвал Table1. Вы можете опустить ключевое слово as, но я чувствую, что оно делает его немного более читабельным.

Обратите внимание, что, хотя эти дополнительные столбцы не являются сложными для запроса Oracle, они генерируют дополнительный трафик. Для тестирования это решение подходит, но в рабочем коде я бы выбрал только те столбцы, которые вам нужны, и выбирал их только один раз. Это всего лишь небольшая дополнительная работа. В конце концов, сколько у вас столбцов? :)

5 голосов
/ 15 марта 2012

Тем не менее, вы можете обойти эту проблему, используя псевдонимы столбцов, которые вы специально выбираете. Например

SELECT columnC new_columnC, columnJ new_columnJ, columnF new_columnF, t.*
  FROM table1 t

для обеспечения отсутствия столбцов с одинаковыми именами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...