使用两个条件或更多SQL更新列

时间:2017-10-17 13:58:08

标签: sql oracle

我正在尝试更新列,使其不为0或null,并且它支持任何值>我这样做了,但它不起作用。我还没有很好地处理SQL,我没有看到任何明确的例子。

UPDATE TEST_MFE_AGRUP_PASARELA 
SET POLIGON = 0 
WHERE POLIGON > 0 AND POLIGON != 0;

这是正确的方法吗?

谢谢你们!

2 个答案:

答案 0 :(得分:2)

您不需要检查空值。因为NULL > 0返回false。

问题是NULL <> 0也是假的,因此没有行更新。

所以你只需要:

WHERE POLIGON > 0

选中 SQL DEMO

with tab(country, car, price) as ( 
    select 'Germany' ,'Mercedes', 30000 from dual union all
    select 'Germany' ,'MERCEDES', 30000 from dual union all
    select 'Germany' ,'BMW'     , 20000 from dual union all
    select 'Germany' ,'Opel'    , 15000 from dual union all
    select 'Japan'   ,'Honda'   , 20000 from dual union all
    select 'Japan'   ,'Toyota'  , NULL from dual
)
select country, car, price
from tab
WHERE price > 15000

答案 1 :(得分:0)

我可能会误解你。
据我所知,如果该字段为0(零)或null(空),则要为Poligon字段赋值。如果是这种情况,您的where语句应为WHERE POLIGON=0 or POLIGON IS NULL