2016-07-04 6 views
2

プロジェクトではカスタム並べ替えが必要です。そして、ネットに潜入すると、次のSQL文が出てきます。ケースを使用してカスタム並べ替えを実行する方法についてのPlay-Slick命令

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示す

:ERROR:選択リストに表示される必要がありSELECT ORDER BYの式を

答えて

0

私はあなたのアプローチに基づいてクエリを作成し、期待どおりに動作しています。私はPostgreSQLでslick 3を使用しています。

私は正しい構文は、より良いあなたにそれを書くことができます読ん用

Case If(...) Then ... If(...) Then ... If(...) Then ... Else ...

であると信じています:

Case .If(...).Then(...) .If(...).Then(...) .If(...).Then(...) .Else(...) .asc

よろしく!

関連する問題