oracle怎么在where后面再作判断条件

一个电话号码表,其中有一个时间字段time,还有两个字段status=1和call_result=1判断这个号码我是否操作过。假如7月10日修改了我是否打过这个号码的这个后台判断,现在只有status这一个字段判断。所以我提取已操作数据的时候,如果在10号之前,那么需要status和call_result两个一起判断;如果是10号之后只需要status这一个字段判断。怎么在where条件后面控制这个,时间已经设定了一个变量可以作对比。因为这个数据提取也是在一个大where里面的条件之一,不能在整个外面控制。求教大神!

1、从 tblTest 表中获取出 itemcode = 'Item001' 的记录行,就可以使用where的相等(=)条件,select * from tblTest where itemcode = 'Item001'。

2、从 tblTest 表中获取出 itemnum > 50 的记录行,就可以使用where的大于(>)条件。大于条件还可以使用大于等于(>=),select * from tblTest where itemnum > 50。


3、从 tblTest 表中获取出 itemnum < 50 的记录行,就可以使用where的小于(<)条件。小于条件还可以使用小于等于(<=),select * from tblTest where itemnum < 50。

4、从 tblTest 表中获取出 itemnum 不等于 itemprice 的记录行,就可以使用where的不等于(!= 或者 <>)条件,这两种不等于符号都是可以的。

5、从 tblTest 表中获取出 itemname 包含“项目”两个字的记录行,就可以使用where的模糊(%)条件,百分号在左侧表示左边可以是任意值,百分号在右侧表示右侧可以匹配任意值,百分号也可以两边都有。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-13

如下参考:

1.从tblTest表中获取itemcode='Item001'的记录行,然后使用where的等式(=)条件,select*fromtblTestwhereitemcode='Item001'如下图。

2. 如果从tblTest表中获得itemnum > 50的记录行,则可以使用where greater than(>)条件。也可以使用大于或等于(>=),select * from tblTest where itemnum > 50,如下图。

3.从tblTest表中获取itemnum < 50的记录行,您可以使用where的小于(<)条件。小于条件也可以使用小于或等于(<=),select * from tblTest where itemnum < 50如下图。

4.从tblTest表中获取itemnum不等于itemprice的记录行,可以使用where's not equal to (!等于或小于>如下图。

5.从tblTest表中获取包含itemname中单词“item”的记录行,然后可以使用where的fuzzy(%)条件。左边的表示左边可以是任何值,右边的百分号表示右边可以匹配任何值,百分号可以是两边的,如下图。

本回答被网友采纳
第2个回答  推荐于2017-10-10

你可以根据时间参数来判断:

如果时间>=你的时间 且 status = 1 这个条件 ;

如果时间<你的时间 且 status = 1  and call_result = 1这个条件 ;

1 和 2 两个是或的关系


具体sql参考:

select * from table1 where 1=1 and ( (time>=v_date and status =1 ) or 
(time<v_date and status = 1 and call_result=1) )

其中:table1 是你的表,v_date 是你的时间变量



--希望对你有帮助!!

追问

这个我看到了,如果我不加1=1怎么样

追答

可以不加的,我只是习惯而已。

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网