У меня есть сложный алгоритм приоритезации, который я хочу написать в SQL при возврате страниц данных с приоритетами.
Некоторые из них имеют приоритет в соответствии с фиксированными значениями, другие упорядочены по значениям переменных. т.е.
// Initial sort on ATTR1 (value1/value2 is higher than value3)
if ATTR1 = value1 or value2
then orderBy creationDate, then modifiedDate, then author
else if ATTR1 = value3
then
// if ATTR1 = value3, do secondary sort on ATTR2 (value4 is higher than value5)
if ATTR2 = value4
then orderBy oldPriority, then modifiedDate, then creationDate, then author
if ATTR2 = value5
then orderBy creationDate, then modifiedDate
Я посмотрел SQL CASE WHEN, но не уверен, как заставить это работать со вторым уровнем сравнения атрибутов.
Является ли CASE WHEN подходящим инструментом для достижения этой цели? У кого-нибудь есть советы по работе с дополнительными уровнями сложности?
Заранее спасибо!