PostgreSQL中Varchar转化为int4的语句

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

 今天很郁闷。

    国家基础地理数据的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') 120
substring(string [from integer] [for integer]) text 抽取子字串 substring('Thomas' from 2 for 3) trim
本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2005/06/09/171088.html如需转载请自行联系原作者


xiaotie 集异璧实验室(GEBLAB)

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
存储 关系型数据库 MySQL
MySQL 中 int (10) 和 char (10) 和 varchar (10) 的区别
MySQL 中 int (10) 和 char (10) 和 varchar (10) 的区别
182 0
|
存储 关系型数据库 MySQL
Mysql中int和varchar类型
Mysql中int和varchar类型
205 0
|
SQL 关系型数据库 RDS
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
168 0
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
|
SQL 关系型数据库 开发者
本地执行 RDS SQL 语句| 学习笔记
快速学习本地执行 RDS SQL 语句
172 0
本地执行 RDS SQL 语句| 学习笔记
|
关系型数据库 PostgreSQL
PostgreSQL INSERT INTO 语句
PostgreSQL INSERT INTO 语句
374 0
|
存储 关系型数据库 MySQL
软件测试mysql面试题:mysql中int(10)和char(10)以及varchar(10)的区别?
软件测试mysql面试题:mysql中int(10)和char(10)以及varchar(10)的区别?
190 0
|
SQL JavaScript 关系型数据库
iot studio业务逻辑通过Nodejs脚本实现较为复杂的SQL语句操作RDS数据库
业务逻辑提供了云数据库MySQL节点,使用云数据库MySQL节点可将数据存入云数据库RDS MySQL版数据表中,但仅支持对数据表中的数据进行简单的增、删、改、查操作。可以通过Nodejs脚本实现连接数据库,以SQL语句的形式操作数据库。
372 1
iot studio业务逻辑通过Nodejs脚本实现较为复杂的SQL语句操作RDS数据库
|
关系型数据库 MySQL
mysql将varchar转换为int
mysql将varchar转换为int
1297 0
|
SQL 关系型数据库 MySQL
30个实用SQL语句,玩转PostgreSQL
PostgreSQL是一款功能非常强大的开源关系型数据库,本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL。
30个实用SQL语句,玩转PostgreSQL
Kam
|
存储 网络协议 关系型数据库
Mysql存储IP使用什么字段类型? int要比varchar好??
Mysql存储IP使用什么字段类型? int要比varchar好??
Kam
1088 0
下一篇
DataWorks