在SQL语句里用什么函数可以判断一个字段的值是否为0 ?
12 个解决方案
#1
where 字段=0不是吗
#2
isnull(字段,0)
检测字段是否为null,如果字段为null就用0代替
检测字段是否为null,如果字段为null就用0代替
#3
直接判断就行啊。
select * from tablename where fieldname=0
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只能用在数据窗口作为表达式用,在语句中是不可以这样用的
说明NVL和DECODE都是SQL的函数,具体功能可以网上搜索
楼上case field2 when 0 then 1 else field2 end只能用在数据窗口作为表达式用,在语句中是不可以这样用的
#8
楼上的,流星雨的也该是对的。
这就看楼主的意思了。
判断的话是用case when结构
不知道楼主在file2为0时,想要的是什么结果了
这就看楼主的意思了。
判断的话是用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
怎么会不可以呢,楼上真搞笑
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代替
检测字段是否为null,如果字段为null就用0代替
#3
直接判断就行啊。
select * from tablename where fieldname=0
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只能用在数据窗口作为表达式用,在语句中是不可以这样用的
说明NVL和DECODE都是SQL的函数,具体功能可以网上搜索
楼上case field2 when 0 then 1 else field2 end只能用在数据窗口作为表达式用,在语句中是不可以这样用的
#8
楼上的,流星雨的也该是对的。
这就看楼主的意思了。
判断的话是用case when结构
不知道楼主在file2为0时,想要的是什么结果了
这就看楼主的意思了。
判断的话是用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
怎么会不可以呢,楼上真搞笑
set @file1=5
set @file2=0
select 结果=@file1/(case @file2 when 0 then 1 else @file2 end)
--结果:
结果
-------------
5.00000000
怎么会不可以呢,楼上真搞笑
#12
thanks !