插入值时使用大小写



下面是一个可执行语句:成功的尝试:

INSERT INTO Personnel_Assignment (DATE, testno, Hours) 
SELECT '21-OCT-2011', '12345', 
   CASE
      WHEN Extract(day From(S.ENDTIME-S.STARTTIME) ) >= 1 
         THEN (Extract(Day From(S.ENDTIME-S.STARTTIME) ) * 24 
            + Extract(Hour From(S.ENDTIME-S.STARTTIME) ) )
      WHEN S.endtime IS NULL
         THEN NULL
      ELSE
         Extract(Hour From(S.ENDTIME-S.STARTTIME) ) )
      ||'hrs' End ||
      Extract(Minute From(S.ENDTIME-S.STARTTIME) ) || 'Min' As Hours 
FROM Schedule S`

请注意,结束时间和开始时间的数据类型是带时区的时间戳,格式如下:

Nls_Timestamp_Tz_Format='HH24:MI TZR'

我想问你一个问题:我的小时数据类型是varchar2如果我想根据上面的结果把我的时间加起来,把它转换成数字会不会很繁琐?

谢谢

首先,|| Else没有意义。||后面的部分必须是要连接的另一个表达式。

其次,你当然可以嵌套case表达式,但在你的情况下,你不需要。单个case表达式可以有多个when/then分支,形式为case when [condition_A] then [expression_if_A_is_true] when [condition_B] then [expression_if_A_is_false_and_B_is_true] else [expression_if_A_and_B_are_both_false] end

相关内容

  • 没有找到相关文章

最新更新