Sql case-when语句的查询
在我插入case-when语句期间,oracle将根据我的case-when在任何固定数字后面自动插入另一个“0” 例如:Sql case-when语句的查询,sql,oracle,select,insert,Sql,Oracle,Select,Insert,在我插入case-when语句期间,oracle将根据我的case-when在任何固定数字后面自动插入另一个“0” 例如: INSERT INTO test (test_date, testno, hours) SELECT '20-OCT-2010', '1234', CASE WHEN Extract(DAY FROM( endtime - starttime )) &
INSERT INTO test
(test_date,
testno,
hours)
SELECT '20-OCT-2010',
'1234',
CASE
WHEN Extract(DAY FROM( endtime - starttime )) >= 1 THEN (
Extract(DAY FROM(
endtime - starttime ))
* 24 + Extract
(HOUR FROM(
endtime - starttime
)) )
WHEN starttime IS NULL
AND endtime IS NULL THEN 0
ELSE ( Extract(HOUR FROM( endtime - starttime )) )
END
||''
|| CASE
WHEN endtime IS NULL
AND starttime IS NULL THEN 0
ELSE Extract(MINUTE FROM ( endtime - starttime )) / 60
END AS hours
FROM testtime
我根据上述声明执行的结果:
Test_Date TestNo Hours
20-OCT-2010 1234 140
预期成果:
Test_Date TestNo Hours
20-OCT-2010 1234 14
我的小时数数据类型是数字(4,2)
我的错误是因为如果分钟的开始时间和结束时间为空,它将自动在其后面添加一个“0”。即使我将“0”更改为null,它仍会在后面添加0
我可以知道是否有其他方法放置“0”值吗
谢谢不要将小时数和分钟数连在一起,-除以60,你应该将它们相加。例如,3小时零分钟是
3+0=3
小时,而不是3 | | 0=30
小时
换句话说,将您的
| |“| |
更改为+
嗨,我无法将| |”|更改为+,因为我的数据类型是数字。所以我不能加+。只有numbers@user976050:对不起,我真的不知道你想说什么| |
是字符串连接运算符;看<代码>+用于数字加法;看,好的。现在我知道你想说什么了。谢谢都是因为我的字符串连接。谢谢你,鲁克!