在PostgreSQL中的Expression中使用CAST AS INTEGER

时间:2017-11-10 03:03:11

标签: sql postgresql

我一直在尝试使用此查询:

Select ((2017 - CAST(substring(p.nip from 9 for 4) AS INTEGER)) * 12) + 11 - CAST(substring(p.nip from 13 for 2) AS INTEGER) >= 144 from m_pegawai p

无济于事。我一直收到错误ERROR: invalid input syntax for integer: ""

查询有什么问题?我试图将括号放在不同的地方但到目前为止没有结果。

1 个答案:

答案 0 :(得分:0)

空字符串''不是有效整数。某些数据库允许您将''投射到0。 PostgreSQL不是其中之一。

使用

CAST (NULLIF(substring(...), '') AS INTEGER)

或者对于SQL标准方法,使用CASE表达式 - 但这更详细。