我们的项目需要自定义排序。在深入研究网络后,我想到了以下 SQL 语句。
SELECT CountryName
FROM dbo.Country
ORDER BY CASE WHEN CountryName = 'INDIA' THEN '1'
WHEN CountryName = 'CHINA' THEN '2'
ELSE CountryName END ASC
谁能帮我把这个放到 Slick 中?
我已经有这种查询了
contriesQuery.map(_.CountryName)
.sortBy(c => {
val srt = {
Case If(x.CountryName = "India") Then 1
Case If(x.CountryName = "China") Then 2
Case Else CountryName
}
srt.asc
})
.result
但它总是向我显示错误 org.postgresql.util.PSQLException:错误:SELECT ORDER BY 表达式必须出现在选择列表中
最佳答案
我已经根据您的方法创建了一个查询,并且它按预期工作。我在 PostgreSQL 中使用 slick 3。
我认为正确的语法是
Case If(...) Then ... If(...) Then ... If(...) Then ... Else ...
为了更好的阅读,你可以这样写:
案例
.如果(...).那么(...)
.如果(...).那么(...)
.如果(...).那么(...)
。别的(...)
.asc
问候!
关于postgresql - 关于如何使用 Case-When 执行自定义排序的 Play-Slick 说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38182357/