나는 이것과 유사한 contacts
테이블에서 내 name
열에서 여러 값을 가지고PostgreSQL을
test 3100509 DEMO NPS
내가 name
에서 각 값의 숫자 부분을 반환하려면 .
select substring(name FROM '^[0-9]+|.*') from contacts
하지만 그것을하지 않습니다
나는이 시도.반환 값에서 숫자가 아닌 모든 문자를 제거하는 방법에 대한 의견이 있으십니까?
나는 이것과 유사한 contacts
테이블에서 내 name
열에서 여러 값을 가지고PostgreSQL을
test 3100509 DEMO NPS
내가 name
에서 각 값의 숫자 부분을 반환하려면 .
select substring(name FROM '^[0-9]+|.*') from contacts
하지만 그것을하지 않습니다
나는이 시도.반환 값에서 숫자가 아닌 모든 문자를 제거하는 방법에 대한 의견이 있으십니까?
이 시도 :
select substring(name FROM '[0-9]+') from contacts
select regexp_replace(name , '[^0-9]*', '', 'g') from contacts;
이 그것을해야한다. 이름에 숫자 시퀀스가 두 개 이상 있어도 작동합니다.
예 :
create table contacts(id int, name varchar(200));
insert into contacts(id, name) values(1, 'abc 123 cde 555 mmm 999');
select regexp_replace(name , '[^0-9]*', '', 'g') from contacts;
이
select NULLIF(regexp_replace(name, '[^0-9.]*','','g'), '')::numeric from contacts
+1 그리고 어쩌면있는 [정규 표현식 클래스 속기 (HTTP를 사용하는 것보다 소수점 숫자 값을 추출 할 경우 : // www.postgresql.org/docs/current/interactive/functions-matching.html#POSIX-CLASS-SHORTHAND-ESCAPES-TABLE) :'SELECT regexp_replace (name, '\ D', '', 'g') 연락처로부터; ' –