You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IBMS_NEW/DB-DDL/maria/ddl/ibmsdb/FN_ADDR_SIGUNGU_REMOVE.sql

41 lines
1.4 KiB
SQL

DELIMITER $$
CREATE OR REPLACE FUNCTION FN_ADDR_SIGUNGU_REMOVE(FULL_ADDRESS VARCHAR(500)) RETURNS VARCHAR(500)
BEGIN
DECLARE suffix VARCHAR(500);
DECLARE first_word VARCHAR(100);
DECLARE second_word VARCHAR(100);
DECLARE Third_word VARCHAR(100);
-- 주소의 첫 번째 단어 추출 (공백 기준)
SET first_word = SUBSTRING_INDEX(full_address, ' ', 1);
SET second_word = SUBSTRING_INDEX(full_address, ' ', 2);
SET Third_word = SUBSTRING_INDEX(full_address, ' ', 3);
-- 경기도 고양시 일산서구 법곳동 11-111
-- 서울특별시 영등포구 신길동 11-111
-- 경기도 양평군 양평읍 11-111
-- 인천광역시 부평구 구산동 370
IF first_word LIKE '%도' THEN
SET suffix = SUBSTRING(full_address, LOCATE(' ', full_address) + 1);
ELSEIF first_word LIKE '%시' THEN
SET suffix = SUBSTRING(full_address, LOCATE(' ', full_address) + 1);
END IF;
IF second_word LIKE '%시' THEN
SET suffix = SUBSTRING(suffix, LOCATE(' ', suffix) + 1);
ELSEIF second_word LIKE '%군' THEN
SET suffix = SUBSTRING(suffix, LOCATE(' ', suffix) + 1);
ELSEIF second_word LIKE '%구' THEN
SET suffix = SUBSTRING(suffix, LOCATE(' ', suffix) + 1);
END IF;
IF Third_word LIKE '%구' THEN
SET suffix = SUBSTRING(suffix, LOCATE(' ', suffix) + 1);
END IF;
RETURN LTRIM(suffix); -- 최종 결과 반환
END $$
DELIMITER ;