내 코드는 다음과 같습니다.
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
테이블의 열 이름을 반환합니다 aean
.
이제 배열을 선언했습니다.
DECLARE colnames text[]
선택의 출력을 colnames 배열에 어떻게 저장할 수 있습니까?
colnames를 초기화 할 필요가 있습니까?
내 코드는 다음과 같습니다.
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
테이블의 열 이름을 반환합니다 aean
.
이제 배열을 선언했습니다.
DECLARE colnames text[]
선택의 출력을 colnames 배열에 어떻게 저장할 수 있습니까?
colnames를 초기화 할 필요가 있습니까?
답변:
두 가지 방법이 있습니다. 하나는 집계하는 것입니다.
SELECT array_agg(column_name::TEXT)
FROM information.schema.columns
WHERE table_name = 'aean'
다른 하나는 배열 생성자를 사용하는 것입니다.
SELECT ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name = 'aean')
나는 이것이 plpgsql 용이라고 가정하고 있습니다. 이 경우 다음과 같이 할당 할 수 있습니다.
colnames := ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name='aean'
);
DECLARE
배열을 my_array INTEGER[];
(또는 관련 유형이 무엇이든) 할 수 있습니다 . WHERE
와 같은 쿼리 절 에서 배열을 사용할 수도 있습니다 WHERE values = ANY(my_array)
. 은 ANY
이 등가 적으로 기능하므로, 어레이 또는 세트를 취득하는 어레이 / 세트의 존재를 확인한다 IN ()
의미로
array_agg(column_name, ',')