PostgreSQL中Varchar转化为int4的语句
今天很郁闷。国家基础地理数据的shp文件中,省级数据的adcodd99为int型的,我导入到PostgreSQL中,成为int4类型。
但是区县级数据的adcodd99为字符型的,导入到数据库中,成了varchar。查询了PostgreSQL文档,没发现直接将字符串转化为数的函数。一番研究发现,可以用它提供的一堆字符串函数的组合来进行转化。数据表为geo_country_poly。我在其中新建了一列int4型的adcodd99_int。运行以下sql语句就可以进行转化:
update geo_country_poly set adcodd99_int=
100000*(ascii(substring(adcode99 from 1 for 1))-48) +
10000*(ascii(substring(adcode99 from 2 for 1))-48) +
1000*(ascii(substring(adcode99 from 3 for 1))-48) +
100*(ascii(substring(adcode99 from 4 for 1))-48) +
10*(ascii(substring(adcode99 from 5 for 1))-48) +
1*(ascii(substring(adcode99 from 6 for 1))-48)
注:
函数返回类型描述例子结果ascii(text)integer参数第一个字符的 ASCII 码ascii('x')120substring(string )text抽取子字串 substring('Thomas' from 2 for 3)trim
页:
[1]