如何根据变量值使用不同的条件。临 C / SQL
How to use different conditions depending on variable value. Pro C / SQL
我是 pro c 的新手,想知道以下是否可行。
char car[11];
strcpy(car,""); /* default value*/
如果此变量有值,则应在下面的 sql 中使用它:
所以 运行 仅针对给定的汽车价值。
select *
from vehicles
where car = :car;
但是,如果 car 为空,则执行以下操作 sql:
所以 运行 所有汽车。
select *
from vehicles;
有没有办法合并这两个而不需要创建重复的 sql 查询,其中一个查询搜索给定的汽车值,另一个搜索所有汽车。
如有任何帮助,我们将不胜感激。
从 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>
我是 pro c 的新手,想知道以下是否可行。
char car[11];
strcpy(car,""); /* default value*/
如果此变量有值,则应在下面的 sql 中使用它: 所以 运行 仅针对给定的汽车价值。
select *
from vehicles
where car = :car;
但是,如果 car 为空,则执行以下操作 sql: 所以 运行 所有汽车。
select *
from vehicles;
有没有办法合并这两个而不需要创建重复的 sql 查询,其中一个查询搜索给定的汽车值,另一个搜索所有汽车。
如有任何帮助,我们将不胜感激。
从 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>