SELECT (* - some_columns) ИЗ ТАБЛИЦЫ в SQL - PullRequest
3 голосов
/ 12 ноября 2009

У меня есть таблица с множеством столбцов, среди которых я бы хотел опустить несколько в своем запросе select Что-то вроде select (* - columns_to_be_omitted) from myTable. Есть ли способ сделать это, кроме перечисления всех других столбцов в запросе?

Это однократный ручной запрос, поэтому меня не беспокоит производительность. Простота использования - большая необходимость здесь.

Ответы [ 5 ]

4 голосов
/ 12 ноября 2009

Вы не можете сделать это в прямом SQL. Лучшее, что вы можете сделать, - это написать хранимую процедуру (анонимную или другую), которая создает динамический оператор SQL и выполняет его.

Вы можете включить все или включить некоторые, но не можете включить все и исключить некоторые (исключая странные расширения поставщиков, которые могут существовать в разных базах данных). В MySQL такого нет.

2 голосов
/ 12 ноября 2009

Вы не можете сделать это - лучшее, что вы можете сделать, это использовать инструмент, подобный SQL Prompt , если вы используете SQL Server Management Studio.

SQL Prompt позволит вам сделать SELECT * FROM MyTable, и если вы поместите курсор после «*» и нажмете вкладку, SQL Prompt перечислит все столбцы для вашей таблицы, предоставив вам список всех столбцов в таблице из затем вы можете удалить те, которые вам не интересны. Или вы можете открыть всплывающее диалоговое окно, которое позволяет вам выбрать любое количество столбцов из этой таблицы, которые затем вставляются в оператор SELECT.

Жаль, что это не часть SSMS из коробки: - (

Марк

1 голос
/ 12 ноября 2009

Я до сих пор не могу понять, как M $ может отгружать IDE и студию управления, у которой нет intellisense ... Теперь я исправлен, что в 2008 году есть, в 2005 нет.

Если у вас есть SQL Management Studio, вы можете использовать скрипт выбора нового окна запроса, который даст вам оператор выбора шаблона, из которого вы можете удалить. Просто щелкните правой кнопкой мыши на столе.

Удачи:)

0 голосов
/ 12 ноября 2009

Вы можете динамически составить список столбцов, используя запрос к словарю данных. Затем вы можете добавить свой список нежелательных столбцов в предложении where (например, column-name not in ()). (Не уверен, как вы могли бы сделать это с помощью метода сохраненных процедур, который предложил Cletus.)

0 голосов
/ 12 ноября 2009

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

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