달나라 노트

Redshift : position (문자열에서 특정 문자 위치 찾기) 본문

SQL/Redshift

Redshift : position (문자열에서 특정 문자 위치 찾기)

CosmosProject 2021. 1. 2. 02:07
728x90
반응형

 

 

 

 

position(text1 in text2)

Redshift의 position 함수는 위처럼 사용할 수 있으며 text1을 text2에서 찾아 그 위치를 반환합니다.

 

 

 

 

 

 

 

select	position('a' in 'abcde')
;

- Result
1


select	position('b' in 'abcde')
;

- Result
2


select	position('c' in 'abcde')
;

- Result
3


select	position('d' in 'abcde')
;

- Result
4


select	position('e' in 'abcde')
;

- Result
5

위 예시를 보면 이해가 쉽습니다.

a, b, c, d, e라는 각각의 문자를 'abcde'라는 문자열에서 찾아 그 위치를 반환해줍니다.

가장 첫번째 위치는 1이며 그 후로 1씩 증가합니다.

 

 

 

 

 

 

 

select	position('f' in 'abcde')
;

- Result
0

위 예시처럼 문자열을 찾을 수 없는 경우 0을 반환합니다.

 

 

 

 

 

 

 

select	position('abc' in 'abcde')
;

- Result
1


select	position('cde' in 'abcde')
;

- Result
3


select	position('ade' in 'abcde')
;

- Result
0

단순히 한 글자씩 찾을 수 있는건 아니며 위 예시처럼 길이가 1 이상인 문자열도 찾을 수 있습니다.

첫 번째 예시를 보면 abc라는 문자를 abcde에서 찾으면 'abc'de 부분에 존재하죠.

따라서 abc라는 문자열이 abcde에서 시작하는 그 위치인 1을 반환합니다.

 

cde는 abcde에서 ab'cde' 부분에 존재하고 cde라는 문자열이 시작하는 위치가 3이니까 3을 반환하죠.

 

마지막 예시는 ade를 abcde라는 문자열에서 찾는데,

a, b, e각각의 문자는 'abcde'에 모두 존재하지만 'ade'라는 문자열 자체는 찾을 수 없습니다.(position은 찾을 문자열의 요소가 아닌 문자열 전체를 찾습니다.)

따라서 찾을 수 없다는 의미인 0을 반환하죠.

 

 

 

728x90
반응형
Comments