sql - ORACLE SQL CAST IN CASE 语句

标签 sql oracle casting integer case

有没有办法在 CASE 语句中将 CAST 转换为 INTEGER?

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

最佳答案

是的,你可以 cast不带小数部分的数字数据类型的值:

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

或者你可以truncate the result ,它还会去除值的小数部分:

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

关于sql - ORACLE SQL CAST IN CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50395415/

相关文章:

oracle - 如何在Oracle中使用distinct或group by维护顺序

go - 如何将结构转换为基本类型,而不是 Go 中的直接类型?

c - 为什么使用宏 #define FREE_ARG char* 来分配由 malloc 分配的空闲内存(数值配方)

sql - PostgreSQL:使用 psql 命令行实用程序时 Windows 上的编码问题

sql - 了解排名函数、OVER()、GROUP BY 之间的关系?

mysql - 使用聚合进行 Sql 查询

mysql - 在 MySQL 上更新多列

java - Empire db code-gen 从表元数据读取 "0.-127"时双重解析失败

带有偏移量的 MySQL 默认 DATETIME 字段

javascript - "undefined"变量与 Javascript 中的空格的字符串连接