Я хотел бы написать запрос, который будет “filter”
количество строк, возвращенных в зависимости от состояния грузовика. Из пользовательского интерфейса отправлю значение ‘1’
, если я только хочу посмотреть грузовики, которые не были закрыты, ‘2’
, чтобы увидеть все грузовики.Где предложение с условием таблицы
select *
from invoice left outer
join truck
on (invoice.invnum = truck.invnum)
Это возвращает правильное количество строк.
Проблема: мне нужен где пункт, который будет смотреть на close_date
поле таблицы грузовика и определить, если она равна нулю или нет. Вот уловка, если в таблице грузовиков нет записей, по-прежнему возвращайте строку из таблицы счетов.
select *
from invoice left outer
join truck
on (invoice.invnum = truck.invnum)
where UI.value = (select close_date from truck where invoice.invnum = truck.invnum) “if no record is returned here, return the value ‘2’
Я думаю, что вы неправильно понимаете предложение 'where'. Или, по крайней мере, то, что он может сделать для вас здесь. Возможно ли, что вы поместили это в хранимую процедуру, завернутую в операторы 'if'? – Jake