当我尝试将TEXT列转换为整数时,PostgreSql给出了这个错误。
select pro_id::integer from mmp_promocjas_tmp limit 1;
此列仅包含数字,有效整数。 “1”怎么可能是无效的整数?
select pro_id, length(pro_id) ,length(trim(pro_id)) from mmp_promocjas_tmp limit 1;
输出:
1 | 2 | 2
查询select pro_id from mmp_promocjas_tmp where trim(pro_id) = '1'
没有显示任何内容。
我试图删除空格,但没有结果:
select pro_id from mmp_promocjas_tmp where regexp_replace(trim(pro_id), '\s*', '', 'g')
答案 0 :(得分:1)
列中可能存在虚假的隐形内容。 要使它们可见,请尝试这样的查询:
select pro_id, c,lpad(to_hex(ascii(c)),4,'0') from (
select pro_id,regexp_split_to_table(pro_id,'') as c
from (select pro_id from mmp_promocjas_tmp limit 10) as s
) as g;
这将显示ID及其包含的每个字符,包括字符及其在曲目中的十六进制代码。