Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据变量值使用不同的条件。proc/SQL_Sql_Oracle_Oracle Pro C - Fatal编程技术网

如何根据变量值使用不同的条件。proc/SQL

如何根据变量值使用不同的条件。proc/SQL,sql,oracle,oracle-pro-c,Sql,Oracle,Oracle Pro C,我对pro c很陌生,我想知道下面的内容是否可行 char car[11]; strcpy(car,""); /* default value*/ 如果此变量有值,则应在以下sql中使用: 所以,只为给定的汽车价值跑步 select * from vehicles where car = :car; 但是,如果car为null,则执行以下sql操作: 所以所有的车都跑吧 select * from vehicles; 有没有一种方法可以合并这两个查询,而无需创建重复的sql查询,其中一个查

我对pro c很陌生,我想知道下面的内容是否可行

char car[11];
strcpy(car,""); /* default value*/
如果此变量有值,则应在以下sql中使用: 所以,只为给定的汽车价值跑步

select *
from vehicles
where car = :car;
但是,如果car为null,则执行以下sql操作: 所以所有的车都跑吧

select *
from vehicles;
有没有一种方法可以合并这两个查询,而无需创建重复的sql查询,其中一个查询搜索给定的汽车值,另一个查询搜索所有汽车

select *
from vehicles;

如果您有任何帮助,我们将不胜感激。

对于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>

谢谢,我要试一试。谢谢你的帮助。