Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql case-when语句的查询_Sql_Oracle_Select_Insert - Fatal编程技术网

Sql case-when语句的查询

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 )) &

在我插入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 )) >= 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:对不起,我真的不知道你想说什么
| |
是字符串连接运算符;看<代码>+用于数字加法;看,好的。现在我知道你想说什么了。谢谢都是因为我的字符串连接。谢谢你,鲁克!