postgresql - PostgreSQL 比较字符串设置
问题描述
我有一个查询,它在不同的服务器上返回不同的结果。
select ' s' > '.'
第一个服务器返回真,第二个 - 假。有哪些设置会导致这种情况?
解决方案
您的数据库有不同的COLLATION:
排序规则功能允许指定每列甚至每个操作的数据的排序顺序和字符分类行为。这缓解了数据库的 LC_COLLATE 和 LC_CTYPE 设置在创建后无法更改的限制。
select name, setting
from pg_settings
where name in ('lc_collate', 'server_encoding', 'client_encoding');
-- explicit collation
select ' s' COLLATE "POSIX" > '.' COLLATE "POSIX"
推荐阅读
- javascript - 即时选择 AuthGuard 类型
- godot - 如何在 Godot 3 中从 spritesheet 加载纹理
- java - 循环表单 bean 的应用程序问题
- flutter - 如何自动化 Flutter 集成测试命令?
- asp.net - 不在 asp core web api 中输入 HTTPPOST Action
- java - 如何为我的 JavaFX 程序加载 FXML URL?
- ios - AudioKit AKNodeRecorder 创建空音频文件
- c++ - 向单标题“库”添加专业化
- typescript - 将外部数据从 PHP 传递到 Typescript / Ecmascript 模块
- angular - Angular中的嵌套订阅,第一个结果迭代