포스트그레SQL기능을 허용합니다 다음 중 하나를 사용하여 호출할 명명된 매개변수가 있습니다.위치또는이름이 지정된표기법. 명명된 표기법은 다음과 같은 함수에 특히 유용합니다. 매개변수가 많기 때문에 매개변수와 실제 인수 간의 연관 명시적이고 신뢰할 수 있습니다. 위치 표기법에서 함수 호출은 다음과 같습니다. 인수 값과 동일한 순서로 작성되었습니다. 함수 선언에 정의되어 있습니다. 명명된 표기법에서는 인수는 이름별로 함수 매개변수와 일치하며 다음과 같이 할 수 있습니다. 순서에 관계없이 작성하세요.
어느 표기법에서든 기본값이 지정된 매개변수는 함수 선언에서 호출 시 작성할 필요는 없습니다. 모두. 그러나 이는 명명된 표기법에 특히 유용합니다. 매개변수 조합은 생략될 수 있습니다. 위치에 있는 동안 표기법 매개변수는 오른쪽에서 왼쪽으로만 생략할 수 있습니다.
PostgreSQL또한 지원합니다혼합표기법은 다음을 결합합니다. 위치 표기법과 명명 표기법. 이 경우 위치지정 매개변수가 먼저 작성되고 명명된 매개변수가 나중에 표시됩니다. 그들.
다음 예는 세 가지 모두의 사용법을 보여줍니다. 다음 함수 정의를 사용한 표기법:
CREATE FUNCTION concat_lower_or_upper(a 텍스트, b 텍스트, 대문자 부울 DEFAULT false)
텍스트를 반환합니다.
그대로
$$
케이스 선택
$3일 때 상위($1 || ' ' || $2)
ELSE LOWER($1 || ' ' || $2)
끝;
$$
언어 SQL IMMUTABLE STRICT;
기능concat_lower_or_upper두 개의 필수 매개변수가 있습니다.a그리고b. 추가적으로 하나의 선택사항이 있습니다.
매개변수대문자기본값은거짓.a그리고b입력은 연결될 것이며,
에 따라 대문자 또는 소문자로 강제됩니다.대문자매개변수. 이에 대한 나머지 세부사항은
여기서는 함수 정의가 중요하지 않습니다(참조35장자세한 내용은).
위치 표기법은 전달을 위한 전통적인 메커니즘입니다. 의 함수에 대한 인수PostgreSQL. 예는 다음과 같습니다:
SELECT concat_lower_or_upper('안녕하세요', '세계', true);
concat_lower_or_upper
----------
안녕하세요 세계
(1행)
모든 인수가 순서대로 지정되었습니다. 결과는 위 이후 사례대문자다음과 같이 지정됨참. 또 다른 예는 다음과 같습니다:
SELECT concat_lower_or_upper('안녕하세요', '세계');
concat_lower_or_upper
----------
안녕 세계
(1행)
여기는대문자매개변수는 생략되었으므로 기본값인를 받습니다.거짓, 소문자로 출력됩니다. 에서 위치 표기법, 인수는 오른쪽에서 생략 가능 기본값이 있는 한 그대로 유지됩니다.
명명된 표기법에서 각 인수의 이름은 다음을 사용하여 지정됩니다.:=인수와 분리하기 위해 표현. 예를 들면:
SELECT concat_lower_or_upper(a := '안녕하세요', b := '세계'); concat_lower_or_upper ---------- 안녕 세계 (1행)
다시, 주장대문자이었음 생략되었으므로 다음과 같이 설정됩니다.거짓암시적으로. 명명된 표기법을 사용하는 것의 한 가지 장점은 인수는 순서에 관계없이 지정할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT concat_lower_or_upper(a := '안녕하세요', b := '세계', 대문자 := true); concat_lower_or_upper ---------- 안녕하세요 세계 (1줄) SELECT concat_lower_or_upper(a := 'Hello', 대문자 := true, b := 'World'); concat_lower_or_upper ---------- 안녕하세요 세계 (1행)
혼합 표기법은 위치 표기법과 명명 표기법을 결합합니다. 그러나 이미 언급했듯이 명명된 인수는 앞에 올 수 없습니다. 위치 인수. 예를 들어:
SELECT concat_lower_or_upper('안녕하세요', '세계', 대문자 := true);
concat_lower_or_upper
----------
안녕하세요 세계
(1행)
위 쿼리에서 인수a그리고b위치적으로 지정됩니다. 동안대문자이름으로 지정됩니다. 이 예에서는 문서를 제외하고는 거의 추가되지 않습니다. 와 수많은 매개변수를 갖는 더 복잡한 함수 기본값, 이름 지정 또는 혼합 표기법을 사용하면 많은 비용을 절약할 수 있습니다. 작성하고 오류 가능성을 줄입니다.
참고:현재 명명된 호출 표기법과 혼합 호출 표기법 집계 함수를 호출할 때는 사용할 수 없습니다(그러나 집계 함수가 창으로 사용될 때 작동합니다. 기능).
| 이전 | 집 | 스포츠 토토 : 문서 : 9.2 : 데이터 정의 |
| 값 표현식 | 위로 | 데이터 정의 |