热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

PostgreSQL大小写排序问题

在PostgreSQL中创建如下表并插入如下数据CREATETABLEquot;TTTquot;(IDvarchar(32)PRIMARYKEYNOTNULL,NAMEvarch

在PostgreSQL中创建如下表并插入如下数据CREATE TABLE quot;TTTquot; ( ID varchar(32) PRIMARY KEY NOT NULL, NAME varch

在PostgreSQL中创建如下表并插入如下数据

CREATE TABLE "TTT" (

ID varchar(32) PRIMARY KEY NOT NULL,

NAME varchar(128) NOT NULL

);

CREATE UNIQUE INDEX TTT_NAME_IDX ON "TTT"(NAME);

insert into "TTT" values('1' , 'A');

insert into "TTT" values('2' , 'a');

insert into "TTT" values('3' , 'B');

insert into "TTT" values('4' , 'b');

此时如果执行

select * from "TTT" order by NAME;

将会得到以下结果

id | name

----------+------------

2 | a

1 | A

4 | b

3 | B

(4 rows)

这里我们期望name的排序是先按大写字母排序,然后再按照小写字母排序。

查了一下资料,可以通过如下操作来解决以上排序问题

1. 首先备份数据库配置文件和数据文件(最好导出数据),默认情况下就是/var/lib/pgsql/data目录下所有东东

2. $ sudo /etc/init.d/postgresql stop

3. $ sudo su - postgres

# initdb --lc-collate=C

4. $ sudo /etc/init.d/postgresql start

5. 再次执行以下查询

select * from "TTT" order by NAME;

结果如下:

id | name

----+------

1 | A

3 | B

2 | a

4 | b

(4 rows)

linux


推荐阅读
  • MySQL 数据库连接池优化及高效大批量数据插入策略
    本文探讨了 MySQL 数据库连接池的优化方法及高效大批量数据插入策略。首先,通过合理配置数据库连接池,提高连接效率。接着,利用线程池技术进行并发处理,进一步提升性能。最后,通过批处理方式批量插入数据,减少 I/O 操作,确保数据写入的高效性和稳定性。此外,还介绍了具体的配置参数和优化技巧,以帮助开发者在实际应用中实现更好的性能表现。 ... [详细]
  • 在处理MySQL递归查询父子节点时,若遇到“此函数未声明为DETERMINISTIC、NOSQL或READS SQL DATA”的错误,可以通过以下方法解决:首先,确保表结构正确设计,包含必要的字段用于存储节点关系。接着,创建两个函数,一个用于根据输入ID查询所有子节点及其ID,另一个用于根据输入ID查询所有父节点及其ID。在创建函数时,需明确声明函数的特性,如是否确定性、是否访问SQL数据等,以避免上述错误。调用这些函数时,确保传递正确的参数,并检查返回结果的完整性。 ... [详细]
  • 点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!来源|https:github.comwizardbyronprinci ... [详细]
  • 本文探讨了在 SQL 中将中文字符转换为拼音首字母的有效方法和技巧。通过使用特定的函数和算法,可以实现中文名称的快速拼音首字母提取,从而提高数据处理的效率和准确性。文中还提供了具体的示例和代码片段,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在 Asp.net 应用中,动态加载 DropDownList 控件的数据源是一项常见需求。本文探讨了如何高效地从数据库中获取数据,并实时更新下拉列表,确保用户界面始终与后台数据保持同步。通过使用 ADO.NET 和 LINQ to SQL 技术,开发者可以轻松实现这一功能,同时提高应用的性能和用户体验。文中还提供了代码示例和最佳实践,帮助开发者解决常见的数据绑定问题。 ... [详细]
  • 深入解析 SQL Server 中的聚合函数 SUM() 使用方法与技巧 ... [详细]
  • 本文提供了Oracle数据库日常管理和操作的实用指南,详细介绍了如何创建表的SQL代码示例,例如:`CREATE TABLE test (id VARCHAR2(10), age NUMBER);` 同时,还涵盖了数据表的基本维护、索引优化及常见问题解决策略,旨在帮助数据库管理员提升工作效率和数据管理能力。 ... [详细]
  • Oracle培训(三十七)——深入解析Hibernate第三章:实体关联关系映射详解
    在本节Oracle培训中,我们将深入探讨Hibernate第三章的内容,重点讲解实体关联关系映射的详细知识点。首先,回顾了Hibernate的基本概念和映射基础,随后详细分析了不同类型的实体关联关系,包括一对一、一对多和多对多关系的映射方法及其应用场景。通过具体的示例和代码片段,帮助读者更好地理解和掌握这些复杂的映射技术。此外,还讨论了如何优化关联关系的性能,以及常见的问题和解决方案。 ... [详细]
  • MySQL 5.6 引入了全局事务标识符(GTID)和多线程复制机制,显著提升了数据库的可靠性和性能。GTID 作为一种新的事务标识方式,确保了事务在主从节点间的一致性,避免了传统基于日志位置的复制可能出现的问题。多线程复制则通过并行处理多个复制任务,大幅提高了复制效率,特别是在大型数据库环境中表现更为突出。这些新特性不仅增强了 MySQL 的高可用性和扩展性,还为数据库管理带来了更多灵活性和便利性。 ... [详细]
  • 在“跃迁之路”专栏中,我们将继续深入探讨SQL习题,本期重点是巩固MySQL多表查询的基础。具体操作包括创建一个名为`day09_exercise`的数据库,以帮助读者更好地理解和实践相关知识点。通过这一练习,读者可以进一步提升对多表查询的理解和应用能力。 ... [详细]
  • 在解决Android应用程序中的ANR问题时,我引入了StrictMode机制。尽管之前未曾使用过这一工具,但通过实践发现它能有效检测并定位性能瓶颈。日志中出现的两个违规记录,除了前四行信息和持续时间存在差异外,还可能涉及不同的线程或操作类型。深入理解这些差异有助于更好地优化应用性能。 ... [详细]
  • 优化后的标题:封装游标存储过程以提升SQL执行效率(Pr_execsql2) ... [详细]
  • BIRT概述与安装指南
    本文旨在介绍BIRT(Business Intelligence and Reporting Tools)的基本概念及其安装流程。首先,详细解析了BIRT的定义、组成结构及其核心优势。随后,提供了BIRT报表制作工具的安装指南,包括下载源的选择与安装步骤,帮助用户快速上手并利用BIRT进行高效的数据分析与报告生成。 ... [详细]
  • 在Linux系统中将Python更新至3.7版本的方法如下:首先,从Python官方网站下载Python 3.7的安装包,例如使用 `wget` 命令下载 `Python-3.7.3.tgz`。其他版本的下载链接也可从Python官网获取。接下来,解压下载的文件并进入解压后的目录,运行配置脚本和编译命令以完成安装。确保在安装过程中添加Python 3.7到系统的环境变量中,以便全局使用。此外,建议检查当前系统的Python版本,以避免冲突。 ... [详细]
  • 在PB数据窗口中,错误处理技术主要针对两类问题进行优化:一是由用户不当数据输入引发的错误,二是程序执行过程中因代码缺陷导致的异常。高效的应用程序设计需确保无论出现哪种类型的错误,系统都能有效应对,保证稳定性和用户体验。通过引入先进的错误检测与恢复机制,可以显著提升系统的健壮性和可靠性。 ... [详细]
author-avatar
雅婷永幸482
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有