В настоящее время я портирую SQL-запросы в PHP для непосредственного взаимодействия с БД доступа.
Что мне нужно сделать, это отсортировать поле, если значение столбца 1 больше нуля, а если нет, отсортировать поле на основе текстового описания столбца 2. У меня уже есть это как вычисляемое поле в Access отсортировано по возрастанию и скрыто, но прямой порт на SQL не работает.
В Access это выглядит так:
IIf((Round(SLA.SLA-SLAMins)/60,2))>0,'A'
& Format(999999-(Round(SLA.SLA-SLAMins)/60,2)),'000000.00'),'B000000.00')
& Left([SrFreetext],10)
Любые идеи о том, как я могу сохранить рассчитанное поле для целей сортировки?
Я обычно решаю это через союз. Без схемы я не могу дать вам точный ответ, но это что-то вроде:
select *,
1 as sortingColumn
from tableName
where Round(SLA.SLA-SLAMins)/60,2))>0
union
select *,
0 as sortingColumn
from tableName
where Round(SLA.SLA-SLAMins)/60,2)) <= 0
order by sortingColumn, textDescriptionField
Других решений пока нет …