PGSQL - 订购列时键入强制转换错误

时间:2014-04-25 13:53:00

标签: php mysql postgresql casting

我正在尝试将字符串列数据排序为数字。我得到的错误如下:

ERROR: invalid input syntax for integer: "HEI001"
SQL state: 22P02

我尝试过:

CAST({COL_NAME} AS integer ) ASC

NULLIF({COL_NAME}, '')::int 

但是,它没有用。请帮我。感谢。

1 个答案:

答案 0 :(得分:0)

你应该先检查一下这个值是否为数字(使用正则表达式),然后再将其强制转换,因为除非你试图得到相应的ASCII值,否则HEI001无法转换为整数(因为@Clodoaldo有已评论过)

CASE WHEN COL_NAME ~ '^[0-9]+$' THEN cast(COL_NAME as integer) END