用case这种方法的速度会慢吗??
UPDATE HR_KQTempForDayCount
SET FTIMEA1=(CASE
WHEN ITIME1 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME1),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME1),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME1
WHEN ITIME2 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME2),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME2),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME2
WHEN ITIME3 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME3),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME3),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME3
WHEN ITIME4 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME4),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME4),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME4
WHEN ITIME5 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME5),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME5),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME5
WHEN ITIME6 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME6),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME6),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME6
WHEN ITIME7 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME7),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME7),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME7
WHEN ITIME8 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME8),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME8),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME8
WHEN ITIME9 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME9),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME9),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME9
WHEN ITIME10 IS NOT NULL AND OSTTIME_A1 IS NOT NULL
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME10),'YYYY-MM-DD HH24:Mi:Ss')>=
(TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),OSTTIME_A1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_AN1/24/60))
AND TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),ITIME10),'YYYY-MM-DD HH24:Mi:Ss')<
TO_DATE(Hr_Time48to24(TO_CHAR(KQDATE,'YYYY-MM-DD'),STTIME_B1),'YYYY-MM-DD HH24:Mi:Ss')-(STTIME_BN1/24/60) THEN ITIME10
END )
WHERE OSTTIME_A1 IS NOT NULL AND STTIME_ADDYN1='Y' AND NCLASS>0
;
像这样写法是不是速度比较慢???有高手指点一下,用哪种方法可以代替这种方法!!谢谢
这里主要是用case ;分别用itime1..itime10与某个范围进行比较.