sql - 如何根据变量值使用不同的条件。临 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>
推荐阅读
- python - QTableWidget 列标题的 PyQt5 上下文菜单
- python-3.x - 使用 SQLite 数据库更新 Tkinter Treeview
- ios - iOS - 将(100 多个)文件导出到 Google 云端硬盘
- python-3.x - TypeError:无法腌制 dict_items 对象
- jquery - 双向视差滚动
- regex - 正则表达式使用Java在行尾的括号内拆分文本
- jquery - Codigniter 查询返回错误计数
- python - 如何使用pygame通过线程检测两个独立函数中按下的按钮
- javascript - 如何在不和谐机器人上发出命令以随机生成报价?
- c# - 在 ASP.NET MVC 中为用户使用了多个月的相同 SessionID