ORACLE SQL CAST IN CASE ЗАЯВЛЕНИЕ - PullRequest
0 голосов
/ 17 мая 2018

Есть ли способ CAST как INTEGER в операторе CASE?

CASE 
WHEN SV.END_DATE IS NOT NULL THEN SV.END_DATE - SV.START_DATE 
ELSE 0
END AS DAYDIFF

1 Ответ

0 голосов
/ 17 мая 2018

Да, вы можете привести значение к числовому типу данных без дробной части:

CASE 
  WHEN SV.END_DATE IS NOT NULL THEN
    CAST(SV.END_DATE - SV.START_DATE AS NUMBER(38))
  ELSE 0
END AS DAYDIFF

или вы можете усечь результат , что также удаляет дробную часть значения:

CASE 
  WHEN SV.END_DATE IS NOT NULL THEN
    TRUNC(SV.END_DATE - SV.START_DATE)
  ELSE 0
END AS DAYDIFF
...