如何根据变量值使用不同的条件.Pro C/SQL



我是pro c的新手,想知道下面的内容是否可行。

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

如果这个变量有一个值,那么它应该在下面的sql中使用:所以只为给定的汽车价值运行。

select *
from vehicles
where car = :car;

但是,如果car为null,则执行以下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>

相关内容

  • 没有找到相关文章

最新更新