我必须同步两个数据库。第一个 (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/