mysql - 在 Postgresql 中模拟 MySQL 的 ORDER BY FIELD()

第一次尝试 PostgreSQL,来自 MySQL。在我们的 Rails 应用程序中,我们有几个使用 SQL 的位置,如下所示:

SELECT * FROM `currency_codes` ORDER BY FIELD(code, 'GBP', 'EUR', 'BBD', 'AUD', 'CAD', 'USD') DESC, name ASC

很快就发现 PostgreSQL 不支持/不允许这样做。

有谁知道如何在 PostgreSQL 中模拟这种行为,还是我们必须在代码中进行排序?

最佳答案

啊,gahooa 这么近:

SELECT * FROM currency_codes
  ORDER BY
  CASE
    WHEN code='USD' THEN 1
    WHEN code='CAD' THEN 2
    WHEN code='AUD' THEN 3
    WHEN code='BBD' THEN 4
    WHEN code='EUR' THEN 5
    WHEN code='GBP' THEN 6
    ELSE 7
  END,name;

https://stackoverflow.com/questions/1309624/

相关文章:

mysql - 在 MySQL Workbench EER 图中的多个列上创建唯一约束

mysql - 如果另一列为空,则选择一列

mysql - 减少mysql中的值但不是负数

mysql - SELECT INTO 和 "Undeclared variable"错误

mysql - 将 Django DB 从 SQLite 迁移到 MySQL 的最佳方法是什么?

c# - 将C#中的DateTime转换为yyyy-MM-dd格式并存储到MySql DateTim

mysql - 从 DATE 和 TIME 创建 DATETIME

mysql - 使用 mysql 查询获取字符串的最后 5 个字符

php - 找不到与列列表匹配的 FULLTEXT 索引(已设置索引)

mysql - 'LIKE ('%this%' OR '%that%' ) 和 something=