달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
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


:
Posted by Elick