2013-08-05 2 views
0

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

например, у нас есть таблица Table1 с 10 столбцами (col_1, col_2, col_2 ..... col_10) , и нам просто нужно выбрать col_1 для col_8.

вместо того, чтобы писать, как

Select col_1, col_2, col_3 .... col_8 from Table1 

мы должны выбрать как этот

Select -(col_9, col_10) * from Table1 
+0

Нет, нет стандартного способа сделать это. –

+0

, так как вы havent назвали dbms, я думаю, вы просите стандарт sql. ответ на это: невозможно – x4rf41

+0

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

ответ

0

Это является возможно, но вы должны использовать динамический SQL или хранимой процедуры. По-прежнему было бы необходимо указать столбец «Начало и конец» с использованием имен и индексов фиксированных столбцов, и если столбцы не были в рабочем порядке (colN, colN + 1 и т. Д.), Тогда это станет беспорядочным.

Так что я полагаю, что ваш ответ на это, просто введите его. Преимущество, которое вы получите от выполнения чего-то, является небольшим.

Надеюсь, это поможет.

0

Любые идеи?

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

1 Выберите колонку с исключением.

SHOW COLUMNS FROM _table WHERE FIELD NOT IN ('column1', 'column2')

2 Затем используйте результат колонки мы получили от выше запроса, чтобы написать, чтобы выбрать столбец запроса.

ВЫБОР {result_aboved} FROM _table WHERE 1

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

+0

Нет, это можно сделать с помощью одного динамического запроса. – MoonKnight

+0

Можете ли вы обратиться к процессу в процедурах хранения? – Zeigen