【发布时间】:2019-03-05 17:42:38
【问题描述】:
我正在尝试从计算字段(案例语句)中提取日期,但我一直遇到问题。任何建议表示赞赏。
SELECT
EXTRACT(DAY FROM (
CASE
WHEN TYP IN ('Swap')
THEN LEAST(TRD_DT, VAL_DT)
ELSE LEAST(EFF_DT, VAL_DT)))
END AS ISS_DT
FROM HA
【问题讨论】:
-
什么问题?在什么日期值?请提供更多详细信息!
-
EFF_DT、TRD_DT和VAL_DT是什么?它们是数据库表中的列吗?每一个的数据类型是什么? -
一个明显的错误是括号。 VAL_DT 后面有三个括号;其中两个应该在关键字
END之后,这是CASE表达式语法的一部分,位于下一行。 -
另外,如果你只从
CASE表达式的结果中提取DAY,为什么要给它命名ISS_DT(大概是“发布日期”)?结果将是天数,例如 12 或 23;ISS_DT似乎不是这样一个数字的自然名称。
标签: sql oracle date case calculated-columns