2013-03-04 4 views
0

Как получить максимальное значение из второго столбца таблицы, не зная имя столбца? В одном SQL-запросе?Как получить наибольшее значение из N-го столбца с указанием имени столбца

У меня есть набор таблиц, где значение, которое я хотел бы получить, всегда находится во втором столбце (это часть пути, в котором всегда создаются таблицы), но имя этого столбца в каждой таблице различно. Поэтому я мог бы использовать простой SQL-запрос, который может получить это значение. Есть идеи? Я знаю, что это возможно с PHP и дополнительным запросом для извлечения имен столбцов, но я ищу элегантное, чисто SQL-решение :)

+0

[Что вы пытались?] (Http://www.whathaveyoutried.com/) См. [Ask advice] (http://stackoverflow.com/questions/ask-advice), пожалуйста. –

+0

@JohnConde - ничего на самом деле, я понятия не имею, как это решить :) И да - я искал решение, не смог его найти. Также: это не домашнее задание. лол. – MarcinWolny

ответ

1

Это будет утомительный процесс. Но если это необходимо, вы можете использовать столбец ORDINAL_POSITION в таблице information_schema.columns, чтобы получить имя N-го столбца.

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = "your table name" 
AND ordinal_position = 1 --replace 1 with your N 

Check this.

-1

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

Как побочный эффект рефакторинга структуры базы данных, у вас будет решение для сотен других проблем, которые у вас возникнут в будущем.

+0

Отношения и нормализация не имеют никакого отношения к этому. Я думаю, вы неправильно поняли вопрос и вопрос. – MarcinWolny

Смежные вопросы