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') | 120 |
substring(string [from integer] [for integer]) | text | 抽取子字串 | substring('Thomas' from 2 for 3) | trim |
版权所有,欢迎转载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义