테이블에서 MSISDN 열을 하나 가져와야합니다. 1가 동일하지마다;컬럼에 영숫자 문자가 포함되어있는 경우 열을 비워 두는 방법
결과가 같은 화상으로
는 NT & '있다 같은 문자열을 반환일부 행을 보인다.
이 경우 행을 삭제하지 않고 항목을 공백으로 설정하려고합니다.
테이블에서 MSISDN 열을 하나 가져와야합니다. 1가 동일하지마다;컬럼에 영숫자 문자가 포함되어있는 경우 열을 비워 두는 방법
결과가 같은 화상으로
는 NT & '있다 같은 문자열을 반환일부 행을 보인다.
이 경우 행을 삭제하지 않고 항목을 공백으로 설정하려고합니다.
select case
when REGEXP_LIKE(MSISDN, '[A-Za-z]') then null
else MSISDN
end as MSISDN
from MyTable
당신은 SQL의 CASE 문을 사용하여이 문제를 해결할 수
SELECT CASE WHEN MSISDN = 'nt>1' THEN '' ELSE MSISDN END AS MSISDN
당신은 문자열을 비교할 수 또는 사용할 수를 LIKE
연산자. 일부 옵션은 다음과 같습니다
SELECT CASE
WHEN MSISDN = 'nt>1' THEN NULL -- match nt>1;
WHEN MSISDN LIKE '%>%' THEN NULL -- match > anywhere in the string
WHEN LOWER(MSISDN) LIKE '%<%' THEN NULL -- match < ignoring case
WHEN MSISDN LIKE '%&%;%' THEN NULL -- match & followed later by ;
ELSE MSISDN
END AS parsed_msisdn
FROM your_table
감사 Jhon (Y) –
@AnujBedge 정규 표현식은이 잔인한하며 적어도 하나의 알파벳이 아닌 값이있는 곳이 어떤 행을 대체합니다. OP의 데이터는 열의 다른 값이 숫자임을 보여줍니다. 그래서 그들은 모두 교체 될 것입니다. – MT0
@ MT0 실수로 테스트에서 '^'을 (를) 남겼습니다 ... 내 나쁜 – JohnHC