시군구 제외 주소 함수, 숫자 한글 표기 함수 추가
parent
0da2a60c15
commit
dc29966220
@ -0,0 +1,37 @@
|
|||||||
|
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;
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
CREATE FUNCTION FN_NUM_TO_KOR_BIG(n BIGINT) RETURNS VARCHAR(255)
|
||||||
|
BEGIN
|
||||||
|
DECLARE units CHAR(9) DEFAULT '일이삼사오육칠팔구';
|
||||||
|
DECLARE positions CHAR(3) DEFAULT '십백천';
|
||||||
|
DECLARE big_units CHAR(4) DEFAULT '만억조경'; -- 필요 시 '해' 등 추가 가능
|
||||||
|
DECLARE result VARCHAR(255) DEFAULT '';
|
||||||
|
DECLARE section BIGINT;
|
||||||
|
DECLARE section_str VARCHAR(50);
|
||||||
|
DECLARE i INT;
|
||||||
|
DECLARE digit INT;
|
||||||
|
DECLARE len INT;
|
||||||
|
DECLARE part VARCHAR(50);
|
||||||
|
DECLARE idx INT DEFAULT 0;
|
||||||
|
DECLARE temp BIGINT;
|
||||||
|
|
||||||
|
IF n = 0 THEN
|
||||||
|
RETURN '영';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET temp = n;
|
||||||
|
|
||||||
|
-- 억 단위 이상 처리
|
||||||
|
WHILE temp > 0 DO
|
||||||
|
SET section = temp % 10000; -- 4자리씩 자르기
|
||||||
|
SET section_str = '';
|
||||||
|
SET len = LENGTH(section);
|
||||||
|
SET i = 1;
|
||||||
|
|
||||||
|
WHILE i <= 4 DO
|
||||||
|
SET digit = FLOOR(section / POW(10, 4-i)) % 10;
|
||||||
|
IF digit <> 0 THEN
|
||||||
|
SET section_str = CONCAT(section_str, SUBSTRING(units, digit, 1));
|
||||||
|
IF 4-i > 0 THEN
|
||||||
|
SET section_str = CONCAT(section_str, SUBSTRING(positions, 4-i, 1));
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
SET i = i + 1;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
IF section_str <> '' THEN
|
||||||
|
IF idx = 0 THEN
|
||||||
|
SET result = section_str;
|
||||||
|
ELSE
|
||||||
|
SET result = CONCAT(section_str, SUBSTRING(big_units, idx, 1), result);
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET temp = FLOOR(temp / 10000);
|
||||||
|
SET idx = idx + 1;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
RETURN result;
|
||||||
|
END
|
||||||
Loading…
Reference in New Issue