sql - PostgreSQL 按特殊字符排序

标签 sql postgresql sql-order-by

我必须同步两个数据库。第一个 (source) 在 Sybase 上运行,第二个 (dist) 在 PostgreSQL 上运行。我为每一行进行比较以检查该行是否存在(pk 的比较)。但是,对于特定的表,pk 是一个 varchar。

我做:

SELECT * FROM table ORDER BY 1;

表输出在 Sybase 上看起来像这样:

# | row 1
.. | row 2
1 | row 3
...

在 PostgreSQL 上:

.. | row 1
# | row 2
1 | row 3

因此,行的顺序不同。我想在 PostgreSQL 中获得与我的 Sybase 数据库 (SQL Anywhere) 相同的输出。

有什么想法吗?

最佳答案

如果我对你的理解正确,你需要这个查询:

WITH x(a) AS (SELECT * FROM table ORDER BY 1)
SELECT *
FROM   x
ORDER  BY a COLLATE "C";

关于sql - PostgreSQL 按特殊字符排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59092015/

相关文章:

sql - 架构设计 : to-one foreign relation with heterogeneous type (different targets), 但角色相同

Django:从本地开发推送时,SQLite 覆盖 Heroku 上的 POSTGRESQL 数据库

sql - 按组填补空白(不等于开始日期)

sql - PostgreSQL:SELECT INTO 正在更改字段的数据类型

php - mysql 结果首先显示一些产品,然后显示其余的

mysql - 根据日期和不同字段从数据库表中选择行

mysql - 为每个不同的名称显示表中最近添加的行

MySQL TRIM SELECT 结果输出

angularjs - 重新排列顺序 : AngularJs

mysql - 返回一个列值的结果,但不返回另一个 SQL