2017-12-15 3 views
-2

oracle varchar 열은 같은 단일 열에 "N.S. Code 123" , "N S Code 678" , "N S Codes 567" , "N.S.Code 345" 등과 같은 값이 여러 번 나타날 수 있습니다. 당신은 REGEXP_SUBSTRCONNECT BY을 사용할 수sql 쿼리는 varchar2 열에서 비슷한 문자열 패턴이 발생하는 모든 행을 출력합니다.

678 
567 
345 
... 
+1

아직 시도한 적이 있습니까? 귀하의 질문에 조금 얇은입니다. –

+0

동일한 * 열 * 또는 동일한 * 속성 *에? 당신의 문자열은''N.S. 코드 123 "또는"N.S. 코드 123 ","N S 코드 678 ","N S 코드 567 ","N.S.Code 345 " 문자열 당 하나의 정수를 말하는 경우에는 문자열 함수를 사용하여 문자열에서 추출하십시오. 당신은 당신의 문제가 무엇이고 당신이 실제로 붙어있는 곳을 설명하지 않았습니다. –

+0

여러 개의 조인 된 테이블 및 다른 열에서 많은 열에 대한 데이터를 검색하는 쿼리는 하나의 값을 가졌지 만 한 열 (예 : table3.col)에는 "NS 코드가 많습니다. NOS 1231 다른 NS 코드가 있습니다 No. 432421 NSCode 번호 6676571 및 NSCode 번호 543이 있으며 NSCode 4232 및 NS 코드 62381과 HS 코드 번호 646482 및 NS 코드 번호 88921 및 NS 코드 번호 12245와 NSCode : 7365가 있습니다. & NS 코드 : 4018768 및 NS 코드 : 142365 ", 다른 행의 동일한 값을 반복하면서 다른 행에 NS 코드의 모든 맛을 표시해야합니다. Pls 도움말 – GZP

답변

0

:로 출력에 대한 SQL 쿼리 필요합니다.

참고 : 패턴 \d{3}"은 정확히 3 자리 숫자를 검색합니다. 그러나 숫자에 숫자가 다를 경우 \d+을 사용할 수 있습니다.

또한 두 문자열을 문자열에 모두 입력했는지 확실하지 않습니다 ("N S Code""N S Codes"). 그렇지 않으면 정규 표현식 패턴을 적용하기 위해 포함시킬 수 있습니다.

WITH t (str) 
    AS (SELECT '"N.S. Code 123" , "N S Code 678" , "N S Codes 567" , "N.S.Code 345"' 
      FROM DUAL) 
    SELECT REGEXP_SUBSTR (str, 
          '(\d{3})"', 
          1, 
          LEVEL, 
          NULL, 
          1) 
     FROM t 
CONNECT BY LEVEL <= REGEXP_COUNT (str, '(\d{3})"'); 
+0

시도해 주신 Kaushik에게 더 자세히 설명하겠습니다. – GZP

+0

여러 개의 조인 된 테이블 및 다른 열에서 많은 열에 대한 데이터를 검색하는 쿼리는 하나의 값을 가지지 만 한 열 (예 : table3.col)에는 "NS 코드가 많습니다. NOS 1231 다른 NS 코드가 있습니다 No. 432421 NSCode 번호 6676571 및 NSCode 번호 543이 있으며 NSCode 4232 및 NS 코드 62381과 HS 코드 번호 646482 및 NS 코드 번호 88921 및 NS 코드 번호 12245와 NSCode : 7365가 있습니다. & NS 코드 : 4018768 및 NS 코드 : 142365 "이므로 다른 행에있는 NS 코드의 모든 맛을 다른 table.cols의 동일한 값으로 반복하여 표시해야합니다. – GZP