как игнорировать условие в предложении где - PullRequest
1 голос
/ 04 апреля 2011

ВЫБРАТЬ поле1 ИЗ таблицы1 ГДЕ field1> = 4006 И поле1 <( ВЫБЕРИТЕ field1 С таблицы ГДЕ field1> 4006 AND field2 = false ЗАКАЗАТЬ ПО field1 LIMIT 1 )

Я хочу, чтобы второе условие (AND field1 <) игнорировалось, если внутренний выбор не вернул запись.

По теме 1007 *

1 Ответ

2 голосов
/ 04 апреля 2011

Что-то вроде (не проверено!):

SELECT field1 FROM table1
WHERE field1 >= 4006 
  AND (field1 < (
    SELECT field1 
    FROM table
    WHERE field1 > 4006
          AND field2 = false
    ORDER BY field1 
    LIMIT 1
    )
    OR
    NOT EXISTS (
    SELECT field1 
    FROM table
    WHERE field1 > 4006
          AND field2 = false
    ORDER BY field1 
    )
)
...