如果有人在前端屏幕的传输列中输入transport ='Bus'或'van',有人可以提出一些解决条件的SQL查询的想法,它应该获取与输入值相关的数据。 或者,如果他们在前端屏幕的竞价栏中输入spot ='loc1'或'loc2',则应该只获取与输入竞价值相关的数据,而不能提取其他竞价。
这应该使用SQL查询而不是使用plsql块
完成 --- this is the query i tried
SELECT * FROM transport_tb
WHERE transport = 'Bus'
OR spot = 'loc1';
---transport_tb table
Name Transport spot
------ --------- ------
Suresh Bus loc1
Raj Van loc2
Karthi Van loc1
Ram Bus loc2
答案 0 :(得分:1)
以下查询将执行您想要的操作:
SELECT
*
FROM
TRANSPORT_TB
WHERE
TRANSPORT = COALESCE(&&TRANSPORT_FROM_UI,TRANSPORT) --'Bus'
AND SPOT = COALESCE(&&SPOT_FROM_UI,TRANSPORT); --'loc1';
由于我不知道完整的要求,因此我使用了AND
。如果需要,请使用OR
运算符。
用实际的变量名替换&&TRANSPORT_FROM_UI
和&&SPOT_FROM_UI
。
干杯!
答案 1 :(得分:1)
您可以将SQL查询重新编程为动态查询。
您将部分SQL代码设置为在输入发送到脚本后立即动态生成。如果您使用的是PHP,则可以在SQL代码中使用内爆函数。
SELECT * FROM transport_tb
WHERE
(transport = 'Bus' OR transport = 'Van' ) -- dynamic code
OR
(spot = 'loc1' OR spot = 'loc2') -- dynamic code
;
为什么使用这种语法? (条件或条件)或(条件或条件) 通过这种逻辑,中间的“或”会搜索字段之间的可能性。圆括号内的OR搜索该字段中值的可能性。