设为首页 收藏本站
查看: 788|回复: 0

[经验分享] PostgreSQL字符串处理函数

[复制链接]

尚未签到

发表于 2016-11-20 08:44:06 | 显示全部楼层 |阅读模式
前期准备,新建数据表
CREATE TABLE mytable
(
id serial NOT NULL,
"name" character varying(20),
geom geometry,
remark character varying(255)
)
插入数据
Insert into mytable(name,geom,remark) values('test1','point(12 23)','remark1');
Insert into mytable(name,geom,remark) values('test2','point(14 23)','remark2');
Insert into mytable(name,geom,remark) values('test3','point(17 23)','remark3');
Insert into mytable(name,geom,remark) values('test4','point(92 29)','remark4');
Insert into mytable(name,geom,remark) values('test5','point(82 83)','remark5');
1、 字符串连接符 '||'
例子:select name || remark as newname from mytable where name like '%test%';
结果:
newname
"test1remark1"
"test2remark2"
"test3remark3"
"test4remark4"
"test5remark5"
2、 字符串长度:bit长度bit_length(string),字符长度char_length(string)或者是character_length(string),字节长度octet(string),具体的长度跟数据库字符编码有关,注意中文字符的长度
例子:select name,bit_length(name),char_length(name),octet_length(name) from mytable where name like '%test%';
结果
"test1";40;5;5
"test2";40;5;5
"test3";40;5;5
"test4";40;5;5
"test5";40;5;5
3、 字符串替换overlay(string placing string from int [for int])
例子:select name,overlay(name placing 'DD' from 5 for 2) from mytable where name like '%test%';
结果
"test1";"testDD"
"test2";"testDD"
"test3";"testDD"
"test4";"testDD"
"test5";"testDD"
4、 查找字符串位子position(substring in string)
例子:select name,position('test' in name) from mytable where name like '%test%';
结果:
"test1";1
"test2";1
"test3";1
"test4";1
"test5";1
5、 取子串,substring(string [from int] [for int]),substring(string from pattern)
例子1select name,substring(name from 1 for 2) from mytable where name like '%test%';
结果1
"test1";"te"
"test2";"te"
"test3";"te"
"test4";"te"
"test5";"te"
例子2select name,substring(name from '^...') from mytable where name like '%test%';
结果2:以任何三个字符开头的,以任何两个字符结尾的为:substring(name from '..$')
"test1";"tes"
"test2";"tes"
"test3";"tes"
"test4";"tes"
"test5";"tes"
6、 转换为大些和小写:upper(string)lower(string)
例子:select name,upper(name),lower(name) from mytable where name like '%test%';
结果:
"test1";"TEST1";"test1"
"test2";"TEST2";"test2"
"test3";"TEST3";"test3"
"test4";"TEST4";"test4"
"test5";"TEST5";"test5"
7、 去除开头或者结尾或者全部的包含的字符串trim([leading|trailing|both] [characters] from string)
例子:select name,trim(name),trim(leading 'test' from name),trim('1' from name) from mytable where name like '%test%';
结果:
"test1";"test1";"1";"test"
"test2";"test2";"2";"test2"
"test3";"test3";"3";"test3"
"test4";"test4";"4";"test4"
"test5";"test5";"5";"test5"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302703-1-1.html 上篇帖子: postgresql怎么用change.column 下篇帖子: postgresql 外部文件表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表