Sql 按字母顺序按大小写排序
我正试图根据内存中的i18n键来排序查询。 所以我构建了这个查询:Sql 按字母顺序按大小写排序,sql,ruby-on-rails,postgresql,Sql,Ruby On Rails,Postgresql,我正试图根据内存中的i18n键来排序查询。 所以我构建了这个查询: SELECT "workflow_tasks".* FROM "workflow_tasks" ORDER BY CASE WHEN type='Workflow::Tasks::EmailCloseBrothersAboutPersonalDetailsChange' THEN 'Email Close Brothers' WHEN type='Workflow::Tasks::CaptureFinanceProposal'
SELECT "workflow_tasks".* FROM "workflow_tasks"
ORDER BY CASE
WHEN type='Workflow::Tasks::EmailCloseBrothersAboutPersonalDetailsChange' THEN 'Email Close Brothers'
WHEN type='Workflow::Tasks::CaptureFinanceProposal' THEN 'Record Finance Status'
WHEN type='Workflow::Tasks::SubmitCreditCheck' THEN 'Submit Credit Check'
WHEN type='Workflow::Tasks::UpdateDriverBankDetail' THEN 'Update Driver''s Bank Details'
WHEN type='Workflow::Tasks::UpdateDriverPersonalDetail' THEN 'Update Driver''s Personal Details'
WHEN type='Workflow::Tasks::ValidateInsuranceCertificate' THEN 'Validate Driver''s Insurance Certificate'
END
我希望它能根据后面的字符串给我一个按字母顺序排列的任务列表,然后
顺序几乎正确,除了ValidateInsuranceCertificate
在updatedDriverPersonalDetails
之前。我一定是误解了CASE
在orderby
中的用法:
我猜你不知何故没有得到确切的匹配。首先,我想说:
SELECT wf.*,
(CASE WHEN type = 'Workflow::Tasks::EmailCloseBrothersAboutPersonalDetailsChange' THEN 'Email Close Brothers'
WHEN type = 'Workflow::Tasks::CaptureFinanceProposal' THEN 'Record Finance Status'
WHEN type = 'Workflow::Tasks::SubmitCreditCheck' THEN 'Submit Credit Check'
WHEN type = 'Workflow::Tasks::UpdateDriverBankDetail' THEN 'Update Driver''s Bank Details'
WHEN type = 'Workflow::Tasks::UpdateDriverPersonalDetail' THEN 'Update Driver''s Personal Details'
WHEN type = 'Workflow::Tasks::ValidateInsuranceCertificate' THEN 'Validate Driver''s Insurance Certificate'
END) as sortkey
FROM "workflow_tasks" wf
ORDER BY sortkey;
您的查询中有一个输入错误,描述了类型
你有:
WHEN type='Workflow::Tasks::UpdateDriverBankDetail'
但是数据库屏幕截图中的类型是复数。因此,你应该:
WHEN type='Workflow::Tasks::UpdateDriverBankDetails'
可能会有更多的打字错误,但截图会截断数据 嗨,戈登,谢谢你的回复。您的from子句(wf而不是wt)上有一个拼写错误。但同样的结果是,出于某种原因,V排在U之前。有一件事可能会让这更清楚,那就是使用数字而不是alpha<代码>然后是0
然后是1
等等。至少清除了一些意图?