2014-11-04 5 views
0

Я хочу написать запрос, в котором я хотел бы иметь условия в предложении WHERE, которые зависят от значений в самом наборе результатов.informix: dynamic condition in where where

, например, если у меня есть таблица СТУДЕНТ с колоннами student_id, имя, возраст, post_code, num_subjects_enrolled

Я хочу, чтобы все имена студентов, проживающих в post_code = «Postcode» и (если они возьмите более одного предмета, который я хочу фильтровать по возрасту < 20 else age> 20)

Я хочу сделать все в одном запросе.

Я использую informix, и любая помощь приветствуется.

+0

Если предложенный ответ не достаточно помощь, то вам необходимо уточнить ваш вопрос, в частности, с точки зрения «, на каком языке вы используя для написания SQL в '. Основной метод, однако, обычно заключается в том, чтобы создать запрос в строке, а затем пройти соответствующие шаги для преобразования этой строки в рабочий запрос. Однако детали варьируются от языка к языку. –

ответ

1

Я думаю, что вы можете построил его с некоторыми AND и OR логики:

SELECT name FROM student WHERE post_code = '12345' 
AND 
(
    (num_subjects_enrolled > 1 AND age < 20) 
    OR 
    (num_subjects_enrolled <= 1 AND age >= 20) 
)