이 경우 DISTINCT와 최대 절전 모드 기준을 만드는 방법이 SQL이 실행됩니다 때내가 포스트 그레스 쿼리를 생성하는 최대 절전 모드 기준을 사용하고
select DISTINCT name from table1 order by lower(name) asc;
과 아래에 비슷한 SQL 생성
criteria.addOrder(Order.asc(property).ignoreCase()).setProjection(
Projections.distinct(Projections.property("name")));
을 아래 오류를 제공합니다 :
ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
나는 이것이 postgres 규칙에 대한 것이지만 w 암탉 내가 오류로 보았다, 나는 우리가 조항에 조항을 사용해서는 안된다는 것을 발견했다. 다음과 같이 선택 중첩
사용 :
select name from (select distinct name from table1) as aliasname order by lower(name) asc;
-
이 절에 의해 선택 및 주문 모두에서 낮은 기능을 사용하여 그 다음 사용하는 경우, 우리는 두 가지 작업 방법이 필요합니다.
select DISTINCT lower(name) from table1 order by lower(name) asc;
중첩 된 선택을하는 기준을 만드는 방법.
또한
- 동면 또는 DB 측 (에 THER 더 나은 솔루션은, 하드 SQL을 사용하지 않고 createQuery() 또는 HQL 인 순서로 사용되는 기능을 선택 적용해야 조건에서 확인 방법
). 사전에 suggetions에 대한
감사합니다.
이전 질문 http://stackoverflow.com/q/16460070/398670과 크게 관련이있는 것 같습니다. –
안녕하세요 크레이그, 잘 연결됩니다. 내 사전 질문과 관련하여 동의하십시오. 내 custom_sort 함수 대신 lower() 함수를 사용하여 문맥에이 질문을 간단하게하려고합니다.참고로, Order 클래스의 toString()을 재정 의하여 Custom DB 함수를 호출하는 것과 관련된 이전 질문을 해결했습니다. 이 문제를 고집하는가요? 감사 – akhi