我想更新一列,以便它不是0或null,并且它支持任何值> 0。我已经提出这种方式,但它不起作用。我还没有很好地处理SQL,我没有看到任何明确的例子。更新两个条件或更多的列SQL
UPDATE TEST_MFE_AGRUP_PASARELA
SET POLIGON = 0
WHERE POLIGON > 0 AND POLIGON != 0;
这是正确的方法吗?
谢谢你们!
我想更新一列,以便它不是0或null,并且它支持任何值> 0。我已经提出这种方式,但它不起作用。我还没有很好地处理SQL,我没有看到任何明确的例子。更新两个条件或更多的列SQL
UPDATE TEST_MFE_AGRUP_PASARELA
SET POLIGON = 0
WHERE POLIGON > 0 AND POLIGON != 0;
这是正确的方法吗?
谢谢你们!
您可以使用以下方法:
UPDATE TEST_MFE_AGRUP_PASARELA SET POLIGON = 0 WHERE NVL(POLIGON, 0) > 0;
哇,非常感谢你 – Bufank85
你不需要NVL。 –
你不需要检查空值。因为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
我可能会误解你。
据我所知,如果该字段为0(零)或空(空),您要为字段Poligon赋值。如果是这种情况,你的where语句应该是WHERE POLIGON=0 or POLIGON IS NULL
'POLIGON!= 0'应该等同于'POLIGON IS NOT NULL' –
这必须是WHERE POLIGON> 0或POLIGON!= 0;' –
如果你使用'WHERE POLIGON> 0',你不会包含'POLIGON = 0 ',那么你可以删除约束'POLIGON!= 0' – Cenderze
这可以通过WHERE poligon> 0来简化(很明显,> 0不是= 0) – fattidare