"실제"데이터를 내 스키마로 옮기는 데 문제가 있습니다. 사실 그것은 데이터베이스 코스의 "프로젝트"이며 개 경주 결과가 포함 된 ab 테이블을 제공했습니다. 이 표에는 개 이름 (실제 이름과 육종가 이름으로 구성된 Dog 이름)과 생년월일, 실제 생년월일 및 출생 연도에 대한 정보가 포함 된 열이 있습니다. 사례는 "Lillycette [AU 2012]"또는 "Black Bear Lee [AU/AU 2013]"또는 "Lemon Ralph [IE/UK 1998]"입니다.문자열의 중간 부분이 있으면 선택합니다. Postgresql
INSERT INTO tblHund (rufname)
SELECT
split_part(name, ' ', 1) AS rufname,
FROM tblimport;
tblimport 내가 CSV 파일에서 데이터를 덤프 테이블입니다 : 나는 첫 번째 단어를 얻을이 같은 split_part와 오른쪽 열에으로 저장을 관리했습니다. 정상적으로 작동합니다. 때때로 두 번째 부분이 없기 때문에 때로는 두 번째 부분이 두 단어로 이루어지기 때문에 이름의 두 번째 부분에 액세스하는 데 실패합니다.
그리고 여기가 지금 막 붙어 있습니다. 나는 문자열과 정규 표현식을 시도 :
INSERT INTO tblZwinger (Name)
SELECT
substring(vatertier from E'[^ ]*\\ (+)$')AS Name
FROM tblimport
WHERE substring(vatertier from E'[^ ]*\\ (+)$') != '';
위의 코드는 오류없이 실행되지만 SELECT 문이 그냥 빈 문자열을 제공하기 때문에 실제로는 아무것도하지 않습니다.
이 정규 표현식을 약간 이해하는 데 3 시간이 걸렸지 만, 나는 그것을 볼 때 여전히 어리 석다.
다른 방법이 있습니까? 그렇다면 그냥 힌트를주세요. 위의 식에 무엇이 잘못 되었습니까?
도움 주셔서 감사합니다. 위의 같은
E'[^ ]*\\ (.+)$'