oracle实现多条件或者单一条件查询

我做一个web,想在表a里查询数据,想实现多条件查询我知道用and,但是我还想实现只给一个条件查询,可以办到吗... 我做一个web,想在表a里查询数据,想实现多条件查询我知道用and,但是我还想实现只给一个条件查询,可以办到吗 展开
 我来答
tctcdtc2008
2014-09-22 · 超过30用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:65.4万
展开全部

如果不用那个条件,会给数据库传入什么呢?

如果传入的是NULL 

可以这样

SELECT XXX
FROM TTT
-- 意思是如果传入个NULL,那么就是A =A 一定成立
-- 如果传入的不是NULL,那么就是 A = 传入的A
WHERE A= NVL(传入的A,A)

 如果传入的不是NULL,可以考虑传入一个肯定没有的特殊值,

用DECODE代替NVL

DOCODE(传入的A,特殊值,A, 传入的A)

更多追问追答
追问
select * from a where a1='123' and a2=null; 是这个意思吗,这样不可以吧
追答

不是

参数是传入的吧?

应该是

select * from a where a1='123' and A2=ANVL(&A2,A2)

如果你没办法理解,用OR好理解一些

SELECT * FROM A WHERE A1=&A1 AND (&A2 IS NULL OR A2 = &A2)

&A2代表传入的A2

还有 NULL的比较不能用 = 只能用 IS NULL / IS  NOT NULL

神机天下
2014-09-22 · TA获得超过175个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:182万
展开全部
若你都用与操作 那么很简单...
先得出你所有查询条件 类似于一个数组..
然后根据数组的数量 来拼接sql 就好了饿

例如 你 是一个条件 就不用and 如果是两个条件 就是 一个and 如果3个 就是2个and
追问
我有点没明白怎么做,具体怎么拼接?能不能写个列子我看看, 谢谢
追答
假设你的条件为 aaa = xx   bbb = yy 
那么你的sql 就是
select * From xXXXXX where aaa = XX and bbb = yy;

当 如果你的条件为 aaa = xx bbb = yy ccc = zz
select * From xXXXXX where aaa = XX and bbb = yy and ccc = zz
类似的 有多条件 就多一个and 就好了...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式