서버/DB

PART 2 문자 관련 함수 (특정 철자 추출, 채우기, 잘라내기)

민밥통 2023. 10. 20. 14:52
-- 문자열의 길이를 출력하기
SELECT Orderer, length(Orderer)
FROM purchaseorder;

바이트 기준으로 글자수가 세어진다.

-- 문자에서 특정 철자 추출하기
SELECT SUBSTR('김민지',1,2)
FROM DUAL;

--DUAL 은 테이블이 없어도 확인 가능한 것.

-- 문자에서 특정 철자의 위치 출력하기
SELECT INSTR('돼지족','족')
FROM DUAL;
SELECT INSTR('abcdefghkij@naver.com','@')
FROM DUAL;

69p

-- 숫자 0을 *로 출력하기alter
SELECT Order_item, REPLACE(Order_finalamount, 0, '#')
FROM purchaseorder;

-- 특정 철자를 N개 만큼 채우기
SELECT Order_item, LPAD(Order_finalamount,10,'@') AS 민지1, rpad(Order_finalamount,10,'@') AS 민지2
FROM purchaseorder;

-- 동그라미로 출력해보기
SELECT Order_item, Order_finalamount, LPAD('●', round(Order_finalamount/1000000), '●') as 민지1
from purchaseorder;

-- 두번째 자리를 *로 출력
SELECT REPLACE(Order_item, SUBSTR(Order_item,2,1),'*') as "아이템"
FROM purchaseorder
WHERE Order_item in ('돼지족');

 

-- 특정철자잘라내기
SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-- barxxx
SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-- bar
SELECT TRIM(TRAILING 'x' FROM 'xxxbarxxx');
-- xxxbar
-- 특정 철자 잘라내기
-- 웨어에 쓰는게 아니라 출력할 때 써야함
select Order_item as "아이템", Order_quantity,  TRIM(TRAILING '족' FROM Order_item)
FROM purchaseorder
WHERE Order_item in ('돼지족');

-- 좀 더 간략하고, 깔끔하게
select TRIM(TRAILING '족' FROM Order_item) as "아이템", Order_quantity
FROM purchaseorder
WHERE Order_item in ('돼지족');