2011. 3. 11. 11:47
함수 비교 (substr, substring) Work/Etc2011. 3. 11. 11:47
처리해야 될 작업발생 : mdb(ms access)로 되어 있는 Query들을 Oracle로 이관.
LEFT, RIGHT 함수에 대해서 Oracle에서 지원을 하지 않는다!!
http://www.techonthenet.com/oracle/functions/substr.php
위 링크에서 확인할 수 있듯이 substr 함수는
substr( string, start_position, [ length ] )
위와 같이 사용하면 되는데... 이 때 start_position 에 음수/양수 사용으로 방향이 결정.
양수를 사용하면 처음부터 시작해서 길이만큼 세고, 음수를 사용하면 뒤부터 시작해서 거꾸로 길이만큼 센다.
이 기능이면 충분히 LEFT, RIGHT 를 대체가능!!
[DB마다 비교]
SQL Server 질의 : 결과
SELECT SUBSTRING('123456789', 0, 3) : 12
SELECT SUBSTRING('123456789', -3, 5) : 1
Oracle 질의 : 결과
SELECT SUBSTR('123456789', 0, 3) : 123 -- Oracle은 start_position 1과 0을 같은 것으로 간주합니다.
SELECT SUBSTR('123456789', -3, 5) : 789 -- 뒤에서 3번째 글자 부터 5글자 이므로...
PostgreSQL 질의 : 결과
SELECT SUBSTRING('123456789', 0, 3) : 12
SELECT SUBSTRING('123456789', -3, 5) : 1