Postgre와 동치Oracle 9i의 SQL array() / array_to_string() 함수
Oracle에서 여러 행을 반환하는 쿼리에서 쉼표로 구분된 값 목록이 있는 단일 행을 반환하여 반환된 행을 단일 행으로 평탄화하고자 합니다.
포스트그레에서SQL은 array 및 array_to_string 기능을 사용하여 다음과 같이 구현할 수 있습니다.
"사람"이라는 표가 주어졌을 때:
id | name
---------
1 | bob
2 | alice
3 | jon
SQL:
select array_to_string(array(select name from people), ',') as names;
반환 예정:
names
-------------
bob,alice,jon
Oracle 9i에서 동일한 결과를 얻으려면 어떻게 해야 합니까?
감사해요.
매트
팀 홀은 오라클에서 스트링 집합 기법을 결정적으로 수집하고 있습니다.
만약 당신이 9i에 갇혀 있다면, 나의 개인적인 선호는 당신이 할 수 있는 사용자 정의 집합(그 페이지에 string_agg 구현이 있음)을 정의하는 것입니다.
SELECT string_agg( name )
FROM people
그러나 STRING_AGG 함수를 새로 정의해야 합니다.새로운 객체를 생성하는 것을 피해야 하는 경우 다른 접근 방식이 있지만 9i에서는 Postgre보다 더 엉망이 될 것입니다.SQL 구문.
10g에서는 Tim의 기사 말미에 언급된 COLLECT 옵션을 확실히 선호합니다.
이 접근 방식의 좋은 점은 집합을 인수로 받아들이는 동일한 기본 함수를 집합 함수와 다중 집합 함수로 모두 사용할 수 있다는 것입니다.
SELECT deptno, tab_to_string(CAST(MULTISET(SELECT ename FROM emp
WHERE deptno = dept.deptno) AS t_varchar2_tab), ',') FROM dept
하지만 9i에서는 사용할 수 없습니다.SYS_CONNECT_BY_PATH는 유연해서 좋지만 느릴 수 있으니 주의하세요.
언급URL : https://stackoverflow.com/questions/4326868/equivalent-to-postgresql-array-array-to-string-functions-in-oracle-9i
'sourcecode' 카테고리의 다른 글
페이지를 다시 로드하지 않고 javascript/jQuery를 사용하여 URL 또는 쿼리 문자열을 업데이트하려면 어떻게 해야 합니까? (0) | 2023.10.30 |
---|---|
란드()는 때때로 같은 것을 연속적으로 반환합니까? (0) | 2023.10.30 |
'SELECT'를 사용하여 함수 호출 (0) | 2023.10.25 |
Android 앱을 프로그래밍적으로 "다시 시작"하려면 어떻게 해야 합니까? (0) | 2023.10.25 |
자바스크립트에서 동적 요소에 이벤트 첨부 (0) | 2023.10.25 |