oracle如果为空替换为0,oracle 如何把0转为null

oracle 如何把0转为null

代码段如下: create table table_1(mon varchar2(50),dep varchar(5),yj number); insert into table_1 values ('一月份','01',10); insert into table_1 values ('一月份','02',10); insert into table_1 values ('一月份','03',5); insert into table_1 values ('二月份','02',8); insert into table_1 values ('二月份','04',9); insert into table_1 values ('三月份','03',8); commit; 做个简单的统计转换 select dep, sum(decode(mon,'一月份',yj,0)) as 一月份, sum(decode(mon,'二月份',yj,0)) as 二月份, sum(decode(mon,'三月份',yj,0)) as 三月份from table_1group by deporder by dep; 但是我想在表格中,把显示为0的地方改成显示为NULL 除开那种选出来后用update把0更改为NULL的方法外,有没有别的方法能直接用一个SQL搞定。

更新时间:2019-05-17 16:32

最满意答案

select dep,

sum(decode(mon,'一月份',yj,'NULL')) as 一月份,

sum(decode(mon,'二月份',yj,'NULL')) as 二月份,

sum(decode(mon,'三月份',yj,'NULL')) as 三月份

from table_1

group by dep

order by dep;

select dep,

sum(decode(mon,'一月份',yj,NULL)) as 一月份,

sum(decode(mon,'二月份',yj,NULL)) as 二月份,

sum(decode(mon,'三月份',yj,NULL)) as 三月份

from table_1

group by dep

order by dep;

你说的是这两种哪个意思?

2013-08-02 回答

其他回答

select nvl(字段名,0) as 字段名 from 表名;

这样写试一下,看看是否好用。

2013-08-02 回答

相关问答

我觉得完全可以从本质上来讲,SAP和Oracle是一样的关键是你自己是否还原意花费一段时间没日没夜的去学习,这段时间可能不会很短:)

下面是MYSQL的语法,自己看着办 #时间转字符串 select date_format(now(),'%Y-%m-%d %h:%i:%s'); #字符串转时间 select str_to_date('2016-5-6','%Y-%m-%d %h:%i:%s');

select dep, sum(decode(mon,'一月份',yj,'NULL')) as 一月份, sum(decode(mon,'二月份',yj,'NULL')) as 二月份, sum(decode(mon,'三月份',yj,'NULL')) as 三月份 from table_1 group by dep order by dep; select dep, sum(decode(mon,'一月份',yj,NULL)) as 一月份, sum(decode(mon,'二月份',yj,NU

...

VB中UTF8转Unicode编码,没见过转中文的,只有中文转UTF-8的! 代码仅供参考: Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchW

...

当你只检查某些东西是否“存在”时(至少,这就是你的C#代码的样子),如果你 - 而不是select * - 使用select count(*) ,你可能会修复它,因为COUNT将返回0(零) )如果没有任何要返回的内容,那么您可以在C#代码中轻松检查它。 As you check only whether something "exists" or not (at least, that's what your C# code looks like), if you - instead of se

...

你需要重新形成你的约束。 首先,如果您希望某个字段持有空值,则无论其他规则如何,它都必须是空字段。 ApprUserNo NUMBER(10) NULL, -- No Check Constrain

其次,创建一个约束,表示ApprUserNo不能为NULL,除非ErStatus = 'PENDING' CONSTRAINT ERStatus_Null_Exception CHECK (AppUserNo IS NOT NULL OR ERStatus = 'PENDING'),

...

不,没有直接从导出的转储文件获取数据库版本的方法。 数据库版本应该由DBA /谁进行导出。 您可以从转储文件或导出日志中找到导出实用程序版本 。 但是,导出实用程序版本不一定与数据库版本相同。 strings my_dump_file.dmp | head -n 5

例如,在Unix / Linux中 : -sh-4.1$ strings expfull_DB.dmp|head -n 5

"SYS"."SYS_EXPORT_FULL_01"

x86_64/Linux 2.4.xx

PRIP

AL

...

我认为你需要使用CASE 例如 WHEN instr(substr(ovrflo_adrs_info,instr(ovrflo_adrs_info,'bldg')+5),' ') != 0 THEN

length(substr(ovrflo_adrs_info,instr(ovrflo_adrs_info,'bldg')+5))

ELSE

Some Default

END as foo

I think you'll need to use CASE e.g. WHEN instr(su

...

您的陈述只是将值分配给第三列(可能)。 它没有订购整个数据集。 除非外部查询具有order by ,否则结果集是无序 order by 。 所以: select . . .

from . . .

order by id, active asc nulls first;

如果这些只是三列,那么你可能甚至不需要keep 。 只是: select id, name, (sysdate - expiry) as active

from . . .

order by id, active asc null

...

我认为NULL是你的默认值? 例如,我有一个表,我已将默认值更改为NULL: ALTER TABLE UNIQUEVALTEST MODIFY ZIP DEFAULT NULL;

现在当我选择: SELECT COLUMN_NAME, DATA_DEFAULT

FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'UNIQUEVALTEST'

AND data_default IS NOT NULL;

我明白了: ZIP NULL

编辑:为了更好地解释,如果字段为

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值