Билл Карвин упоминает об этом, но я думаю, что на это стоит очень четко указать:
SQL не выполняет то, о чем вы просите, поэтому любое «решение», которое вы получите, будет клочком.
Если вы знаете , то наверняка он всегда будет работать на Oracle 10, тогда, конечно, кросс-табуляция Уолтера Митти может это сделать. Правильный способ сделать это - создать простую комбинацию порядка сортировки в запросе и коде приложения, чтобы правильно его расположить.
- Работает в других системах баз данных,
- он не рискует разрушаться другими слоями (например, у MySQL есть проблема с> 255 столбцами. Вы уверены, что интерфейсная библиотека справляется так же хорошо, как и сама база данных?)
- это (обычно) не намного сложнее.
Если вам нужно, вы можете сначала запросить Content_Row_ID
s, а затем запросить все необходимые вам строки, упорядоченные по CampaignID
, ContentRowID
, что даст вам каждую (заполненную) ячейку в левой направо, построчно.
Ps.
Есть куча вещей, которые, по мнению современного человека, должен иметь / делать SQL, которых просто нет. Это один, сгенерированные диапазоны - это другое, рекурсивное закрытие, параметрический ORDER BY
, стандартизированный язык программирования ... список можно продолжить. (хотя, по общему признанию, есть уловка для ORDER BY
)