在SQL语句里用什么函数可以判断一个字段的值是否为0 ?

时间:2021-07-15 15:05:57

在SQL语句里用什么函数可以判断一个字段的值是否为0 ?

12 个解决方案

#1


where 字段=0不是吗

#2


isnull(字段,0)
检测字段是否为null,如果字段为null就用0代替

#3


直接判断就行啊。

select * from tablename where fieldname=0

#4



是这样的,现在要:

select field1 / field2 from test

这个 field2 为0就不行啦,各位是怎么处理的?

#5


select case field2 when 0 then 0 else field1/field2 end  from test

#6


select field1/(case field2 when 0 then 1 else field2 end)  from test

#7


select field1/decode(NVL(field2,0),0,1,field2) from test ;
说明NVL和DECODE都是SQL的函数,具体功能可以网上搜索
楼上case field2 when 0 then 1 else field2 end只能用在数据窗口作为表达式用,在语句中是不可以这样用的

#8


楼上的,流星雨的也该是对的。

这就看楼主的意思了。
判断的话是用case when结构
不知道楼主在file2为0时,想要的是什么结果了

#9


流星雨按照字面理解是对的。但是语句执行通不过。

#10


case when我以前试过,但是在SQL-PLUS中通不过。请注意语法规则要符合SQL。

#11


declare @file1 dec(3,2),@file2 dec(5,2)
set @file1=5
set @file2=0

select 结果=@file1/(case @file2 when 0 then 1 else @file2 end)

--结果:

结果            
------------- 
5.00000000

怎么会不可以呢,楼上真搞笑

#12



thanks !

#1


where 字段=0不是吗

#2


isnull(字段,0)
检测字段是否为null,如果字段为null就用0代替

#3


直接判断就行啊。

select * from tablename where fieldname=0

#4



是这样的,现在要:

select field1 / field2 from test

这个 field2 为0就不行啦,各位是怎么处理的?

#5


select case field2 when 0 then 0 else field1/field2 end  from test

#6


select field1/(case field2 when 0 then 1 else field2 end)  from test

#7


select field1/decode(NVL(field2,0),0,1,field2) from test ;
说明NVL和DECODE都是SQL的函数,具体功能可以网上搜索
楼上case field2 when 0 then 1 else field2 end只能用在数据窗口作为表达式用,在语句中是不可以这样用的

#8


楼上的,流星雨的也该是对的。

这就看楼主的意思了。
判断的话是用case when结构
不知道楼主在file2为0时,想要的是什么结果了

#9


流星雨按照字面理解是对的。但是语句执行通不过。

#10


case when我以前试过,但是在SQL-PLUS中通不过。请注意语法规则要符合SQL。

#11


declare @file1 dec(3,2),@file2 dec(5,2)
set @file1=5
set @file2=0

select 结果=@file1/(case @file2 when 0 then 1 else @file2 end)

--结果:

结果            
------------- 
5.00000000

怎么会不可以呢,楼上真搞笑

#12



thanks !