사례 명세서를 주문하고 싶습니다. 가능합니까? 내가 어떻게 해?JPA에서 사례 열 "사례 번호
SELECT new com.systemname.to.UserDataHolder(u.userId,
CASE WHEN (u.place.cityId = :cityId) THEN 1 WHEN (u.place.stateId = :stateId) THEN 2 ELSE 3 END)
FROM User u
ORDER BY u.userId DESC
사례 명세서를 주문하고 싶습니다. 가능합니까? 내가 어떻게 해?JPA에서 사례 열 "사례 번호
SELECT new com.systemname.to.UserDataHolder(u.userId,
CASE WHEN (u.place.cityId = :cityId) THEN 1 WHEN (u.place.stateId = :stateId) THEN 2 ELSE 3 END)
FROM User u
ORDER BY u.userId DESC
어떤 JPA 공급자를 사용하고 있습니까? 그것은 작동하지 않습니다
SELECT new com.systemname.to.UserDataHolder(u.userId,
CASE
WHEN (u.place.cityId = :cityId) THEN 1
WHEN (u.place.stateId = :stateId) THEN 2
ELSE 3 END)
FROM User u
ORDER BY u.userId, CASE
WHEN (u.place.cityId = :cityId) THEN 1
WHEN (u.place.stateId = :stateId) THEN 2
ELSE 3 END DESC
하지,하지만 당신은 "있는 그대로"여기에 추가 할 수 있습니다?
시도,
SELECT u.userId, (CASE WHEN (u.place.cityId = :cityId) THEN 1 WHEN (u.place.stateId = :stateId) THEN 2 ELSE 3 END) as myNum FROM User u ORDER BY u.userId, myNum DESC
나. – pringlesinn
구문 오류가 있거나 주문하지 않았습니까? – digitaljoel
은 'as'를 인식하지 못합니다. – pringlesinn
두 번째 옵션은 정상적으로 작동하지만 하나의 CASE 만 있으면 오랜 시간이 걸립니다. 내가 한 것은 Java에서 CASE 값을 설정하고 ORDER BY 절에만 CASE WHEN을 넣었습니다. 그것은 응용 프로그램에 있던 이전 SQL보다 완벽하고 빠릅니다. – pringlesinn
우리는 정렬 ASC 또는 DESC와 동일한 작업을 수행 할 수 있습니까? ..이 사용하려고했지만 예기치 않은 토큰 ASC가 있습니까? –