2014-01-21 8 views
1

У меня есть определенная пользователем функция, и я хочу сделать выбор и выбрать столбец, основываясь на том, больше или меньше его или нет.Использование инструкции IF в предложении WHERE

Например:

Select 
    t.A, t.B 
From 
    Table t 
Where 
    if(t.A <= t.B) then 
    use t.A 
    else 
    use t.B 

Возможно ли это? Заранее спасибо!

+0

Что вы ожидаете, если это произойдет? Что означает «использование» в этом контексте? – Jodrell

ответ

2

Похоже, вы хотите

SELECT 
    CASE 
    WHEN t.A <= t.B 
    THEN t.A 
    ELSE t.B 
    END AS Smaller 
FROM Table t 
1

Нет! Но вы можете использовать case заявление

Select 
    t.A, t.B 
From 
    Table t 
Where 
    (case when t.A <= t.B then t.A ELSE t.B END) = SomeValue 

или если меньше колонки требуется в отборном заявлении только тогда

Select 
    (case when t.A <= t.B then t.A ELSE t.B END) as column 
From 
    Table t 

Примечание Я не использовал Pervasive SQL раньше, но быстрый googlez показывает, что оператор case был добавлен в версию 9.x ??

1

ли вы на самом деле хотите?

SELECT MIN(t.A, t.B) AS SmallestAOrB FROM Table t 
Смежные вопросы