Есть некая таблица.
Пусть отобранные из нее по условию записи выглядят в result set вот так:
x x - - x - -
- y y - - - y
z z - z z - -
прочерк — это null
x, y, z — это поля разных записей
Можно ли составить изначально такой SQL запрос, чтобы null значения заменялись non-null значениями из следующей записи?
В итоге нужно получить всего одну запись, которая была бы максимально заполнена non-null значениями.
То есть применительно к примеру — результат должен быть такой:
x x y z x - y
Количество записей здесь произвольное:
— если ничего не отобрано — пустой результат и возвращать
— если отобрана 1 запись — ее и возвращать
— если найдено больше одной — то "мержить" поля записей между собой, приоритет имеют поля верхних записей (выборка по дате будет)
PS: предполагается, что таблица будет разреженная, то есть основная ее часть будет заполнена null-ами.
PPS: На момент генерации запроса структура таблицы будет известна наверняка (пусть будет Table1 с колонками Column1,..,ColumnN)