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
编辑:为了更好地解释,如果字段为
...