복붙노트

[SQL] 문자열의 문자와 숫자의 수를 찾기

SQL

문자열의 문자와 숫자의 수를 찾기

안녕하세요 저는 아래와 같이 테이블 검사를

NAME
---------
abc1234
XYZ12789
a12X8b78Y9c5Z

나는 문자열에서 숫자와 문자 수의 수를 찾으려고

select name,length(replace(translate(lower(name),'abcdefghijklmnopqrstuvwxyz',' '),'      ','')) as num_count,
length(replace(translate(name,'1234567890',' '),' ','')) as char_count
from test6;

출력을주는 그 실행 미세한

NAME    NUM_COUNT   CHAR_COUNT
abc1234         4       3
XYZ12789        5       3
a12X8b78Y9c5Z   7       6

하지만 내 질문은 ABCDEFGHIJKLMNOPQRSTUVWXYZ를 제공하지 않음으로써 어떤 옵션이 있습니다 및 1234567890 수동으로

해결법

  1. ==============================

    1.내가 제대로 이해한다면 당신은 오라클 PLSQL을 사용하고 내가 아는 한, 거기 어떤 "내장"(PLSQL에서) 방법이 카운트 문자열에서 숫자 / 문자의 수.

    내가 제대로 이해한다면 당신은 오라클 PLSQL을 사용하고 내가 아는 한, 거기 어떤 "내장"(PLSQL에서) 방법이 카운트 문자열에서 숫자 / 문자의 수.

    그러나, 당신은 문자를 계산하려면 다음을 수행 할 수 있습니다 : 이중에서 () [0-9], REGEXP_REPLACE ( 'abcd12345') 길이를 선택

    와 숫자 : 이중에서 LENGTH (REGEXP_REPLACE ( 'abcd12345', '[A-ZA-Z]를'))을 선택

    또는 귀하의 경우 :

    select name,
    LENGTH(REGEXP_REPLACE(name,'[a-zA-Z]','')) as num_count,
    LENGTH(REGEXP_REPLACE(name,'[0-9]','')) as char_count,
    from test6;
    

    빌 도마뱀의 경우 : 내 대답은 오라클 11g에서 테스트되었으며 그것은 잘 작동합니다! 다시 내 대답을 삭제하기로 결정한 경우, 이유를 설명하는 주석을 추가 할 수있는 친절하게도하시기 바랍니다. 또한 대화방에서 당신을 찾고 있었다 ...

  2. ==============================

    2.@alfasin의 대답은 좋다, 그러나 당신이 11g 사용하는 경우 그것은 간단하게 얻을 수 있습니다 :

    @alfasin의 대답은 좋다, 그러나 당신이 11g 사용하는 경우 그것은 간단하게 얻을 수 있습니다 :

    select name,
    REGEXP_count(name,'\d') as num_count,
    REGEXP_count(name,'[a-zA-Z]') as char_count,
    from test6;
    
  3. from https://stackoverflow.com/questions/11380329/finding-the-count-of-characters-and-numbers-in-a-string by cc-by-sa and MIT license