【问题标题】:PostgreSQL order by special charPostgreSQL 按特殊字符排序
【发布时间】:2019-11-28 15:24:54
【问题描述】:

我必须同步两个数据库。第一个(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 db (SQL Anywhere) 相同的输出。

有什么想法吗?

【问题讨论】:

  • 您需要匹配两个数据库之间的排序规则。这需要对每个数据库中的排序规则进行一些研究。

标签: sql postgresql sql-order-by


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2016-10-29
    • 2019-12-01
    • 1970-01-01
    相关资源
    最近更新 更多