많은 다른 값에 대해 테이블 열의 매 2 위치를 확인하고 싶습니다. 이것은 내가 무엇을해야 할 알고있는 유일한 방법입니다 (2 개 자리 위치의에 지정된 모든 값을 일치하는 행을 선택),하지만 난 청소기가 내기, 짧은 방법 :여러 substr instr OR 문을 수행하는 더 쉬운 방법 oracle pl sql
select *
from table
where 1=1
and (
Substr(columnA,1,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,3,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,5,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,7,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,9,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,11,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,12,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,14,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM')
or Substr(columnA,16,2) IN ('CE','44','45','87','89','UT','AZ','XX','YY','S1','S2','S3','S4','ES','PM'))
;
참고 : 열의 값이 ABCDEF이고 'BC'가 있는지 확인하는 경우 일치 항목이 없어야하며 'AB', 'CD', 'EF'만 일치해야합니다.
나는 단 한 번만 찾고있는 모든 것을 나열 할 수 있기를 원합니다. 한 번만 columnA를 나열하는 것이 더 좋을 것입니다. 유용 할 수있는 INSTR 함수를 찾았지만 여기에 적용하는 방법을 모르겠습니다. (1,3,5,7,9,11,14,16)
IN 측량기 (COLUMNA, 'XX')를 그러나 모든이 작업을 수행하는 것보다 더 좋은 방법이있다 :
이 작동 가치 나는 찾고 있습니까? 어떻게 COALESCE를 사용할 수 있습니까?
계속 구문 오류가 발생합니다. 이 항목을 내 선택에 넣을 수 있습니까? 및 REGEXP (columnA, '^ (..) * (CE) | (44) | (45) | (87) | (89) | (AZ)) | (XX) | (YY) | (S1) | (S2) | (S3) | (S4) | (ES) | (PM) ') ? – user1344919
및 regexp_like (.....) – Joe
@ user1344919이 예제를 참조하십시오 : http://sqlfiddle.com/#!4/d41d8/38453 –