例如有个 成绩表 ( 学生, 课程, 成绩)
创新互联主营瓜州网站建设的网络公司,主营网站建设方案,成都app开发,瓜州h5小程序开发搭建,瓜州网站营销推广欢迎瓜州等地区企业咨询
有如下数据
张三 英语 100
李四 英语 80
王五 英语 60
赵六 英语 0
你是不是想
SELECT * FROM 成绩表 WHERE 学生 = '赵六' 的时候,
得到的结果是:
赵六 英语 NULL
这样?
如果是的话
SELECT
学生, 课程, DECODE( 成绩, 0, NULL, 成绩) AS 成绩
FROM
成绩表
WHERE
学生 = '赵六'
注:
DECODE( 成绩, 0, NULL, 成绩)
相当于
CASE WHEN 成绩 = 0 THEN NULL
ELSE 成绩 END
也就是 如果成绩为0,那么返回 NULL, 否则就返回成绩。
甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。
2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
用nvl函数。\x0d\x0a这个函数的格式是select nvl(arg,n) from dual;\x0d\x0a意思就是说,如果arg这个参数是null的话,那么就用n这个数。\x0d\x0a你的问题是这样解决的:\x0d\x0aselect nvl(arg,0) from dual\x0d\x0a如果参数arg是Null的话,那么就用0
insert into 表(字段A) value(值A)
字段B不出现在上面的列表,就自动插入空值。
标量赋值:
格式:名字 类型 := 赋值内容
例子:aa varchar(5):= 'ss';
总共我知道的有4中:1.标量,2.显示变量,3声明记录,4索引表
可以用alter table语句,例如将emp表的last_name字段设成可以为空,可以写:alter table emp modify (last_name null);
看看是null值还是“ ”值。一般的是不允许null值,但是可以插入空值“”或者“ ”
解决办法————————————
判断一下用户提交的值
if(test!=null!test.equlas("")){
}
先不说你空值用0表示的问题,
就是opdate=sysdate估计你也很难得到结果,sysdate表示系统当前时间,包含时分秒,你那个opdate怎么可能会和sysdate相等呢?
真的要是把空值用0表示的话,oracle中有nvl函数
select nvl(workbillid,0) from kf_workbill
意思就是把workbillid字段为空的显示成0,当然也可以显示成任何字符或者数字。
友情提醒一下:
你那个opdate=sysdate是不是该改成
to_char(opdate,'yyyymmdd')=to_char(sysdate,'yyyymmdd')