2014-03-07 1 views
-2

세 번째 문자가 '_'인 데이터를 찾으려면 어떻게해야합니까? 당신이 할 수있는이세 번째 문자가 '_'인 데이터를 검색하려면?

Names 
------ 
al_en 
vi_i 
sm_th 
+1

무엇을하려고 했습니까? 당신은 누군가가 당신을 위해 당신의 일을하기를 원한다면 oDesk에서 프리랜서를 고용 할 수 있습니다 :) – Trent

+0

NO Sir 나는 그것이 작동하지 않는 것처럼 노력했고, 나는이 분야에 처음이었습니다. 그래서 물었습니다. 미안하다 @ trent – viki

답변

2

같은

:

select name from t1 where SUBSTRING(name, 3 , 1) = '_' 

working fiddle

+0

그것은 완벽하게 작동한다 – viki

+0

당신은 .. 환영합니다! 다행이 도왔다. –

+1

모든 솔루션이 귀하의 질문에 완벽하게 작동한다면 답을 표시하십시오. –

1
SELECT COLUMNNAME 
FROM YOURTABLE 
WHERE INSTR(COLUMNNAME,'_') = 3 

INSTR() 반환 문자열에서 지정된 문자열/문자 위치.

+0

완벽하게 작동합니다 – viki

2

ESCAPE 절을 사용하여 LIKE 연산자를 사용할 수 있습니다. '_'은 패턴 일치 문자이므로 ESCAPE 절을 사용해야합니다.

where names like '__\_%' escape '\'; 

여기서 첫 번째 문자는 두 개의 문자와 일치하며 이스케이프 문자 '\'는 세 번째 밑줄 문자가 문자 그대로 해석되도록합니다. TABLE_NAME에서

SQL> with x(y) as (
     select 'al_en' from dual union all 
     select 'a_en' from dual union all 
     select 'awen' from dual union all 
     select '___en' from dual union all 
     select 'sm_' from dual 
     ) 
select y from x 
where y like '__\_%' escape '\'; 

Y 
----- 
al_en 
___en 
sm_ 
0

이름 선택 여기서 INSTR (이름, '_') = 3;

관련 문제