
주어진 문자열 분할 및 사례문 준비
특정 날짜 범위와 해당 집합 이름을 기반으로 테이블을 효율적으로 업데이트하려면 분할이 필요합니다. 주어진 문자열을 개별 구성요소로 동적으로 변환합니다. 이 접근 방식을 사용하면 가변 입력 매개변수를 처리할 수 있고 업데이트 작업의 유연성이 보장됩니다.
날짜 범위 및 이름 설정 분할
-
날짜 분할 범위:
- p_dates 매개변수 분할 쉼표(,)를 구분 기호로 사용합니다. 이렇게 하면 "start_date to end_date" 형식의 날짜 범위 배열이 생성됩니다.
1 | SELECT unnest(string_to_array(p_dates, ',' )) AS date_range;
|
로그인 후 복사
-
분할 세트 이름:
- 마찬가지로 쉼표(,)를 사용하여 p_sets 매개변수를 분할합니다. 구분 기호. 그러면 집합 이름의 배열이 생성됩니다.
1 | SELECT unnest(string_to_array(p_sets, ',' )) AS set_name;
|
로그인 후 복사
동적 사례 설명 준비
날짜 범위와 집합이 끝나면 이름이 분할되면 다음을 사용하여 동적 Case 문을 구성할 수 있습니다. 단계:
-
날짜 범위를 통한 반복:
-
범위 추출 경계:
- split_part를 사용하여 각 범위에서 시작 및 종료 날짜를 추출하고 구분 기호를 "to"로 지정합니다.
-
빌드 케이스 절:
- 각 날짜 범위에 대해 update table_name set set_name을 사용하여 해당 세트 이름을 업데이트합니다.
- 날짜 범위를 기준으로 행을 필터링하려면 BETWEEN 조건을 사용하세요. .
다음 코드 조각은 동적 사례 문 준비:
1 2 3 4 5 6 7 | PREPARE upd_tbl AS
UPDATE table_name
SET set_name = CASE
WHEN given_date BETWEEN split_part(, 'to' , 1):: date
AND split_part(, 'to' , 2):: date THEN
ELSE null
END ;
|
로그인 후 복사
여기서:
- $1은 날짜 범위에 대한 자리 표시자입니다.
- $2는 해당 세트 이름에 대한 자리 표시자입니다. .
date_range 및 set_name을 매개변수로 사용하여 준비된 명령문을 실행하면 테이블을 다음과 같이 만들 수 있습니다. 지정된 날짜 범위 및 세트 이름을 기반으로 업데이트되었습니다.
위 내용은 분할 날짜 범위를 기반으로 테이블을 동적으로 업데이트하고 Case 문을 사용하여 이름을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!