sql - 如何使用 postgresql 对字符串进行自定义排序顺序的查询?
问题描述
我有一个表incident
,status
它是一个字符串。
我想使用自定义排序顺序查询所有事件。
状态可以是以下之一:inProgress
, completed
,canceled
我希望能够有一种自定义的排序。让客户指定排序顺序。不过,我对查询本身有问题。
我尝试了几件事:
SELECT *
FROM incident as i
ORDER BY array_position(array["inProgress", "completed", "canceled"], i.status)
SELECT *
FROM incident as i
ORDER BY case when status = "inProgress" then 0
case when status = "completed" then 1
case when status = "canceled" then 2
else 3
Unhandled rejection SequelizeDatabaseError: column "inProgress" does not exist
我在所有尝试中都收到错误。
我期望inProgress
成为 的值status
,但我不确定我做错了什么。
解决方案
检查正确的sintaxis的文档。并且文本使用单引号。双引号用于字段名
ORDER BY case
when status = 'inProgress' then 0
when status = 'completed' then 1
when status = 'canceled' then 2
else 3
end
推荐阅读
- swift - 有没有办法只使用像素数据指针而不使用 CVPixelBuffer 来制作 MTLTexture?
- javascript - 如何将数字 API 输入为字符串或我将在哪里放置 toString()
- css - 离子如何将离子含量与页面底部对齐
- vue.js - Vuetify v-data-table 双击事件不起作用
- javascript - 用 Jest 进行反应测试:解构分配不起作用
- python - 用特定年份对应的 Quantity 平均值填充 NaN 值
- javascript - OrderBy 时间戳 desc Firestore
- reactjs - Firefox 和 Safari 中的传单缓慢拖动问题
- c# - c#当多个用户从远程源引用同一个对象时如何锁定对象
- python - 将文件名拆分为 pyspark 数据框的不同列