Как использовать разные условия в зависимости от значения переменной. Pro C / SQL - PullRequest
0 голосов
/ 25 марта 2020

Я новичок в pro c и хотел бы знать, возможно ли следующее:

char car[11];
strcpy(car,""); /* default value*/

, если эта переменная имеет значение, ее следует использовать в пределах sql ниже: только для данного значения автомобиля.

select *
from vehicles
where car = :car;

Однако, если автомобиль равен нулю, сделайте следующее sql: Так, запустите для всех автомобилей.

select *
from vehicles;

Есть ли способ объединить эти два без необходимости создавать дубликаты sql запросов, где один ищет значение данного автомобиля, а другой для всех автомобилей.

Любая помощь будет принята.

1 Ответ

1 голос
/ 25 марта 2020

Начиная с SQL, это будет

select *
from vehicles
where (car = :car or :car is null)

Пример из SQL* Plus (не беспокойтесь о &&car переменной подстановки; вы будете использовать :car ):

Передавая значение переменной:

SQL> with vehicles (car) as
  2    (select 'BMW'      from dual union all
  3     select 'Mercedes' from dual union all
  4     select 'Audi'     from dual
  5    )
  6  select *
  7  from vehicles
  8  where (car = '&&car' or '&&car' is null);
Enter value for car: Audi

CAR
--------
Audi

Нет значения:

SQL> undefine car
SQL> /
Enter value for car:
                                --> here I pushed ENTER, without entering a value
CAR
--------
BMW
Mercedes
Audi

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...