19. Using Functions in WHERE And Character Based SRFs
Ben의 프로그램2023. 9. 11. 22:34
728x90
SRF in WHERE Clause
Select Clause 에서 SRF 를 사용하는 것을 지난시간에 배워보았는데요. SRF 는 WHERE Clause 에서도 요긴하게 사용할 수 있습니다. Where Clause 는 Filter 처리를 하기 위해서 사용했었는데요. WHERE Clause 에 해당하는 데이터들은 Qualified 되어 Data Greed 에서 확인할 수 있었습니다. 이런 WHERE Clause 의 기존 목적과 동일하게 Filter 의 목적으로 SRF를 Where Clause 에서 사용할 수 있습니다.
예를 들어 위와 같이 사용할 수 있는데요. initcap 은 각 단어의 첫 글자를 대문자로 바꾸어주는 함수입니다. 위의 함수처럼 SRF 을 Where Clause 에서 사용할 수 있습니다.
SUBSTR( ) 함수는 3개의 인자를 갖는데요. 첫 번째 인자는 문자열 혹은 컬럼이 들어가고, 두 번째 인자는 시작 위치, 세 번째 인자는 짤라낼 개수를 의미합니다. 여기서 주의할 점은 첫 번째 문자가 0이 아니고 1입니다. 여기서 또 재밌는 점은 세 번째 인자를 생략하는 경우인데요. 3번 째 인자를 생략하게 되면 위의 예제처럼 두 번째 인자 위치에서부터 끝까지 모든 문자가 출력되게 됩니다.
다음으로 볼 함수는 LPAD 함수입니다. LPAD 함수도 마찬가지로 3개의 인자를 갖는데요. 첫 번째 인자로는 문자열 혹은 속성이 오고, 두 번째 인자로는 자리 수 가 옵니다. 세 번째는 자리수 중에 남은 자리에 채울 문자열을 입력하게 됩니다. LPAD 는 Left 위치에 남는 자리에 문자열을 채우는 함수가 됩니다. Third argument is the string that we want to pad on the left side.
그 다음으로 보게 될 함수는 TRIM 함수인데요. LTRIM 과 RTRIM이 있습니다. TRIM 함수는 좌 혹은 우에서 내가 지정한 문자열 혹은 공백을 지워주는 함수입니다. 여기서 재밌는 점은 세 번째 SQL 인데요. TRIM 대상에 해당하는 문자열이 왼쪽 시작부터 나열된 것이 아니라면 지워지지는 않는 다는 점입니다.
TRIM 함수의 또 다른 재밌는 점은 위에서 보는 것과 같이 반복되는 문자열도 한꺼번에 지운다는 점입니다. 연속으로 입력된 공백 문자같은 것을 지울 때도 유용하게 사용할 수 있습니다.