oracle实现多条件或者单一条件查询
我做一个web,想在表a里查询数据,想实现多条件查询我知道用and,但是我还想实现只给一个条件查询,可以办到吗...
我做一个web,想在表a里查询数据,想实现多条件查询我知道用and,但是我还想实现只给一个条件查询,可以办到吗
展开
展开全部
如果不用那个条件,会给数据库传入什么呢?
如果传入的是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
展开全部
若你都用与操作 那么很简单...
先得出你所有查询条件 类似于一个数组..
然后根据数组的数量 来拼接sql 就好了饿
例如 你 是一个条件 就不用and 如果是两个条件 就是 一个and 如果3个 就是2个and
先得出你所有查询条件 类似于一个数组..
然后根据数组的数量 来拼接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 就好了...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询