Итак, общий шаблон будет выглядеть следующим образом:
- Если
col1
строки меньше сравниваемого значения для col1
, тогда строка "ниже", то есть больше впереди, если отсортировано. - Если
col1
строки равна сравниваемому значению для col1
и col2
этой строки меньше сравниваемого значения для col2
, то строка "ниже", то есть больше вверхспереди, если отсортировано. - ..
Что может привести к выражению типа:
col1 < '?'
OR col1 = '?'
AND col2 < '?'
OR col1 = '?'
AND col2 = '?'
AND col3 < '?'
OR col1 = '?'
AND col2 = '?'
AND col3 = '?'
AND col4 < '?'
OR col1 = '?'
AND col2 = '?'
AND col3 = '?'
AND col4 = '?'
(я не использовал ваши значения, честно говоря, они путаютменя. Замените знаки вопроса соответствующим образом.)
Шаблон для другого направления является аналоговым.Просто сделайте >
из <
.Тогда AND
оба подвыражения.Не забудьте поставить скобки вокруг каждого из них, чтобы заставить OR
s предшествовать ((< sub expression for <= >) AND (< sub expression for >= >)
.
. Вы можете попробовать использовать булеву алгебру, чтобы упростить это, если это возможно. (На этот разЯ просто слишком ленив, чтобы попытаться сделать это. И модель более узнаваема в этом смысле.) Но поскольку это простая задача для оптимизатора, которая может изменить его, если это возможно, и обещает в любом случае, от этого не так много пользы, кроме, возможно,лучшая (человеческая) читабельность.