2017-10-16 1 views
3

에 나는이 포스트 그레스 테이블이있다. 내가 잘 작동 PostgreSQL의 요청 발견 : 나는 스프링 데이터 JPA를 사용하고 있습니다으로PostgreSQL을 HSQL

SELECT array_agg(acc) 
FROM (
     SELECT DISTINCT unnest(tags::text[]) 
     FROM my_schema.news 
     WHERE contract = 'acontract' 
    ) AS dt(acc); 

을, 나는 HSQL 요청으로이 요청을 변환하려고하지만 그것이 작동 할 수 없습니다. 전환에 대한 아이디어가 있습니까?

+1

은 사용 "SET 데이타베이스 SQL 구문 PGS TRUE"(또는 해당 URL 속성 sql.syntax_pgs = TRUE)는 PostgreSQL을의 비표준 기능을 활성화합니다. SERIAL, BIGSERIAL, TEXT 및 UUID 데이터 형식과 시퀀스 함수에 대한 참조는 HyperSQL에 해당하는 것으로 변환됩니다. HSQLDB는 배열 타입을 지원하지만, PostgreSQL의 배열 구현은 SQL 표준과 다릅니다. – scottb

답변

1

SET DATABASE SQL SYNTAX PGS TRUE 외에 SQL 표준에 따라 배열을 참조해야합니다.

CREATE TABLE News (tags text array[10], contract varchar(40)) 

그런 다음 HSQLDB에서

select array_agg(acc) from (
    select distinct acc from news, unnest(tags) un(acc) 
    WHERE contract = 'acontract' 
)