Вы не можете.
Запрос всегда возвращает фиксированное количество столбцов. Нет способа написать запрос, который задним числом действует по своему определению.
Лучшее, что вы можете сделать, это получить A + MAX (A) в каждой строке (+ то же самое для каждого столбца), используя оконные функции, а не агрегатные функции.
Если вы кодируете приложение, подключенное к этой БД, это поможет вам определить критерии при самой первой прочитанной вами записи.
SELECT Name, A, MAX(A) OVER () AS MaxA, B, MAX(B) OVER () AS MaxB, C, MAX(C) OVER () AS MaxC, D, MAX(D) OVER () AS MaxD
FROM T
После поиска и устранения неисправностей этого в течение многих часов и нахождения по телефону с моей размещающей группой они обнаружили, что была проблема с их сетевой конфигурацией. Решение было сделано более ясным, когда во время моего тестирования одного из VM's внезапно не мог найти домен, и простой 'ping' к IP каждого поля от другого будет иногда испытывать таймаут. Это исключило DNS полностью. После того, как группа хостинга применила надлежащую конфигурацию на их конец, приложение было конюшней и FAST!
спасибо за общую справку!
Несколько указателей здесь .Basically, ошибка бросается сетевым уровнем, и SQL-сервер просто сообщает об этом.
Hope, которая помогает.
Можно ли проверить нагрузку дважды на сервер дб? Мы действительно получаем их время от времени в нашем dev ENV, но никогда в ENV напоминания
Ну, я бы хотел начать с того, что у меня установлена последняя версия сетевых драйверов моей виртуальной машины.
Звучит так, будто между вашими 2 VMS происходит сбой связи. Попробуйте открыть TCP-сокет между двумя компьютерами и посмотрите, не исчезнет ли он через некоторое время.
Поздно к игре, но я получал ту же ошибку с веб-приложением .NET / MS SQL. Сайт размещен в IIS на GoDaddy VPS, хостинг имеет несколько IP-адресов, БД размещена в Azure.
Я считаю, что моя проблема была (идиот!), Я просто забыл поместить выделенные IP-адреса сайта GD из GD в брандмауэр Azure для сервера SQL. По какой-то странной причине трафик попадает в / из GD / Azure за пределами фактического IP-адреса веб-сайта (адреса привязки IIS) и работает.
Но чаще всего фактические адреса привязки IIS обращаются к Azure для взаимодействия со службами SQL. Я исправил настройки брандмауэра в Azure, добавив в него правильные IP-адреса от GoDaddy, и (стук по дереву) ошибка семафора, похоже, исчезла.
Другими словами, прежде чем вы начнете искать большие проблемы, начните с простого и обязательно проверьте простые вещи, такие как настройки сети / брандмауэра.