@ddukbbok_kang

하고 싶은 건 일단 해봅니다.

SQL/HackerRank

[해커랭크 easy] The Blunder(다양한 문자열 함수)(MySQL)

강떡볶 2022. 3. 16. 14:04

https://www.hackerrank.com/challenges/the-blunder/problem?isFullScreen=true 

 

The Blunder | HackerRank

Query the amount of error in Sam's result, rounded up to the next integer.

www.hackerrank.com

 

어떤 여자의 키보드의 0 버튼이 고장나서 벌어진 실수...

간단히 replace()를 쓰면 되지만, 다른 문자열 관련 함수도 공부할 수 있었다.

일단 내가 풀었던 방법은

with temp as(select *, replace(salary, 0, '')as miscalculated
from EMPLOYEES)

select ceil(avg(salary) - avg(miscalculated))
from temp

사실 복잡한 쿼리가 아니기 때문에 그냥 from 절에 서브쿼리로 했어도 된다.

 

 

 

잘 정리되어 있는 문자열 관련 함수 링크다 ▼

https://www.goodsapp.org/bbs/board.php?bo_table=program&wr_id=9&sca=SQL 

 

MySQL 문자열 함수 #1 CONCAT, INSERT, REPLACE, INSTR > | 굿스앱

MYSQL 문자열 관련 함수 #1● ASCII(문자) : 문자의 아스키 코드값 리턴.SELECT ASCII('문자');select ascii('A');● CONCAT('문자열1','문자열2','문자열3'...) : 문자열들을 이어준다.select concat('ASP,','PHP,','SQL',' WEB S

www.goodsapp.org

 

 

내가 많이 쓸 거 같은 함수만 여기에 정리해놓고, 나머지는 필요할 때마다 위 링크를 참고할 예정이다.

 

● CONCAT('문자열1','문자열2','문자열3'...) : 문자열들을 이어준다.
select concat('ASP,','PHP,','SQL',' WEB STUDY');

● INSERT('문자열','시작위치','길이','새로운문자열') : 문자열의 시작위치부터 길이만큼 새로운 문자열로 대치
'시작위치' 와 '길이'는 문자열이 아니므로 작은따옴표로 굳이 묶어주지 않아도 된다.
select insert('MySql web study','7','3','offline');
 select insert('MySql web study',7,3,'offline');

● REPLACE('문자열','기존문자열','바뀔문자열') : 문자열 중 기존문자열을 바뀔 문자열로 바꾼다.
select replace('MySql web study','web','offline');

● INSTR('문자열','찾는문자열') : 문자열 중 찾는 문자열의 위치값을 출력
--값이 존재하지 않으면 0값 리턴
select instr('MySql web study','s');
 select instr('MySql web study','S');

● LEFT('문자열',개수) : 문자열 중 왼쪽에서 개수만큼을 추출.
select left('MySql web study',5);
select left('MySql web study','5');

● RIGHT('문자열',개수) : 문자열 중 오른쪽에서 개수만큼을 추출.
select right('MySql web study',5);
select right('MySql web study','5');

● MID('문자열',시작위치,개수) : 문자열 중 시작위치부터 개수만큼 출력
select mid('MySql web study',7,3);
select mid('MySql web study','7','3');

● SUBSTRING('문자열',시작위치,개수) : 문자열 중 시작위치부터 개수만큼 출력
select substring('Mysql web study',11,5);
select substring('Mysql web study','11','5');