Допустим, у меня есть сводный отсортированный набор данных, подобный этому
ID Col1 Col2
1 a 11
2 b 22
3 c 33
4 d 44
5 e 55
Когда я выполняю пейджинговый вызов, возвращая две записи за раз, я получаю первые две строки.
Позволяетскажем, я хочу вернуть те же данные, но не поворачивать данные, поэтому мой набор данных выглядит как
ID Col Val
1 Col1 a
2 Col1 b
3 Col1 c
4 Col1 d
5 Col1 e
1 Col2 11
2 Col2 22
3 Col2 33
4 Col2 44
5 Col2 55
Я хотел бы написать SQL-оператор, который бы возвращал те же данные, что и в первом примере, но без поворотасначала данные.
Некоторые дополнительные проблемы
1) Может быть n столбцов, а не только два
2) Tt также должен поддерживать фильтр для всех столбцов.Эту часть, которую я решил, см. Ниже
Filter on pivoted data
WHERE Col1 in ('a', 'b', 'c')
AND Col2 in ('11', '22')
Filter on unpivoted data
WHERE (Col = 'Col1' and Val in ('a', 'b', 'c')) or Col != 'Col1')
AND (Col = 'Col2' and Val in ('11', '22')) or Col != 'Col2')
Both filters return the same results.
Часть фильтра, которую я уже выяснил, застрял на сортировке и подкачке.