pg中replace和translate的用法说明(数据少的中文排序)

 更新时间:2021年01月27日 09:51:14   作者:安善良民弱女子  
这篇文章主要介绍了pg中replace和translate的用法说明(数据少的中文排序),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1.首先创建students表

CREATE TABLE students
(
 id integer NOT NULL,
 name character varying(255),
 sex character varying(255),
 class character varying(255),
 "like" character varying(255),
 school character varying(255),
 phone character varying(255)
)

2.插入数据

INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone") 
VALUES ('1', '大猫', '女', '一年级', '绘画', '第三小学', '2345');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone") 
VALUES ('2', '小厌', '男', '三年级', '书法', '第四小学', '2346');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone") 
VALUES ('3', '库库', '女', '二年级', '绘画', '第三小学', '2342');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone") 
VALUES ('4', '艾琳', '女', '四年级', '书法,钢琴', '第四小学', '2349');

结果:

select * from students

如下图:

3.replace 的用法

replace(string text, from text, to text)

返回类型:text

解释:把字串string里出现地所有子字串from替换成子字串to

示例1:

select replace('一条黑色的狗','黑','黑白相间')

结果:一条黑色的狗 变成了 一条黑白相间色的狗

如下图:

示例2:

update students set name=replace(name,'大猫','小猫咪的姐姐')

结果:name为 ‘大猫'的这条数据name='小猫咪的姐姐'

示例3:

select * from students where school='第四小学' ORDER BY replace(name,'艾琳','1')

结果:

4.translate的用法

translate(string text, from text, to text)

返回类型:text

解释:把在string中包含的任何匹配from中的字符的字符转化为对应的在to中的字符。

示例1:

select translate('她真是好看', '好看','漂亮')

结果:

示例2:

select * from students where phone like '2%' 
ORDER BY translate(class, '一二三四','1234')

结果:

示例3:

select * from students where phone like '2%' 
ORDER BY translate(name, '库小厌猫咪艾','1234')

结果

结论:

有了translate再也不担心中文排序问题了(数据比较少的情况)

补充:pg中position、split_part、translate、strpos、length函数

我就废话不多说了,大家还是直接看代码吧~

select position('.' in '1.1.2.10');
select split_part('1.1.2.10','.',length('1.1.2.10') - length(translate('1.1.2.10','.',''))+1);
select split_part('1.1.2','.',length('1.1.2') - length(translate('1.1.2','.',''))+1);
select length(translate('1.1.2.10','.','a'))+1 as num
select translate('1.1.2.10','.','')
select strpos('1.1.2.10','.')
select instr('1.1.2.10','.',1,3) 
select length('1.1.2.10') - length(translate('1.1.2.10','.',''))

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • PotgreSQL 基于时间点恢复过程

    PotgreSQL 基于时间点恢复过程

    本篇文章介绍 PostgreSQL 基于时间点恢复(point-in-time-recover)需要的条件及恢复过程,属于操作说明,对PotgreSQL 时间点恢复相关知识感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • pgsql 如何删除仍有活动链接的数据库

    pgsql 如何删除仍有活动链接的数据库

    这篇文章主要介绍了pgsql 删除仍有活动链接的数据库操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL使用jsonb进行数组增删改查的操作详解

    PostgreSQL使用jsonb进行数组增删改查的操作详解

    有时候我们需要使用PostgreSQL这种结构化数据库来存储一些非结构化数据,PostgreSQL恰好又提供了json这种数据类型,这里我们来简单介绍使用jsonb的一些常见操作,需要的朋友可以参考下
    2024-03-03
  • 初识PostgreSQL存储过程

    初识PostgreSQL存储过程

    这篇文章主要介绍了初识PostgreSQL存储过程,本文讲解了PostgreSQL中存储过程的语法,并给出了一个操作实例,需要的朋友可以参考下
    2015-01-01
  • PostgreSQL 更新JSON,JSONB字段的操作

    PostgreSQL 更新JSON,JSONB字段的操作

    这篇文章主要介绍了PostgreSQL 更新JSON,JSONB字段的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL使用IP无法连接的解决方法

    PostgreSQL使用IP无法连接的解决方法

    这篇文章主要介绍了PostgreSQL使用localhost可以连接/使用IP无法连接的问题解决,需要的朋友可以参考下
    2018-01-01
  • PostgreSql 重建索引的操作

    PostgreSql 重建索引的操作

    这篇文章主要介绍了PostgreSql 重建索引的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • postgresql coalesce函数数据转换方式

    postgresql coalesce函数数据转换方式

    这篇文章主要介绍了postgresql coalesce函数数据转换方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 浅析postgresql 数据库 TimescaleDB 修改分区时间范围

    浅析postgresql 数据库 TimescaleDB 修改分区时间范围

    这篇文章主要介绍了浅析postgresql 数据库 TimescaleDB 修改分区时间范围,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • PostgreSQL 复制表的 5 种方式详解

    PostgreSQL 复制表的 5 种方式详解

    PostgreSQL 提供了多种不同的复制表的方法,它们的差异在于是否需要复制表结构或者数据,这篇文章主要介绍了PostgreSQL 复制表的 5 种方式,需要的朋友可以参考下
    2023-01-01

最新评论