728x90
반응형

Dev/SQL 5

[ORACLE] 특정 문자 찾기 (INSTR, IndexOf)

java의 indexOf와 같은 기능을 SQL(Oracle, MYSQL) 에서 INSTR 함수를 씁니다. INSTR('대상문자열', '비교값', 시작위치, 검색결과순번위치) SELECT INSTR('ABCDEFG', 'C') FROM DUAL 결과 = 3 SELECT INSTR('ABCDEFG', 'H') FROM DUAL 결과 = 0 없으면 0 SELECT INSTR('ABCDEFGABCDEFG', 'C', 1, 2) FROM DUAL 결과 10 ABCDEFGABCDEFG 에서 C의 위치가 1부터시작, 2번째 C의 위치 예제 SQL로 특정 문자와 문자 사이를 자동으로 파싱할 때 자주 쓸 수 있습니다. SELECT SUBSTR('/FILE/A/2013/12345.PNG',INSTR('/FILE/A/201..

Dev/SQL 2023.05.16

[오라클 SQL] LPAD/RPAD 공백 채우기, 자릿수 채우기

PK 같은 컬럼에 숫자로만 된 데이터를 1씩 증가 시켜 삽입하는 방법은 MAX 함수를 사용하여 간편하게 할 수 있습니다. 하지만 'AA001'과 같은 문자와 숫자가 같이 있는 컬럼의 경우엔 MAX함수만으론 구현이 불가합니다. AA와 001을 나누어 MAX(001)을 해도 이것을 1로 반환하기 때문에 나중에 합치고 보면 'AA1' 이런 식으로 나오기 때문이죠 해당 테이블로 테스트를 해보면 SELECT SUBSTR(MAX(TXT),0,2)||(SUBSTR(MAX(TXT),3)+1) FROM TEST; 이처럼 AA와 003을 분리했을 때 +1을 하면 003이 004가 아닌 4로 바뀌기 때문에 숫자 시퀀스가 아닌 문자와 숫자가 혼합된 시퀀스의 경우 LPAD함수를 사용하여 문제를 해결할 수 있습니다. SELECT..

Dev/SQL 2022.07.08
728x90
반응형