반응형
파이썬: concat(age,”세”)
sql: concat(age(컬럼명),”세”): 컬럼 안에는 값이 여러개. 컬럼에 있는 값들을 다 집어 넣는다는 개념.
일괄적인 처리를 하는것.
ex. max(age) age: 30, 25 ,59… 나이는 하나만 넣으면 어느것이 큰지 모른다. 모든 나이를 다 넣어야한다.
단일행은 각 나이를 하나씩 처리하는 것이다. select, where 절에서 사용.
다중행은 한번에 처리하는 것. 묶어서 처리(그룹함수). select, having 절에서 사용한다. (where절에서 사용할 수 없다)
여기서부터 여기까지 바꿔라: insert
이런글자를 이 글자로 바꿔라: replace
select insert('123456789', 2,3,'안녕'); -- 두번째 글자부터 3글자 '안녕'으로 변경
select replace('123456789', '234', '안녕'); -- '234'문자열을 '안녕'으로 변경
select substring('1234567890',4,2); -- 4번째 글자부터 두글자 나머지를 반환
예제)
EMP 테이블에서 커미션이 있는 직원들의 직원_ID(emp_id), 이름(emp_name), 커미션비율(comm_pct), 커미션비율(comm_pct)을 8% 인상한 결과를 조회.
-- (단 커미션을 8% 인상한 결과는 소숫점 이하 2자리에서 반올림하고 별칭은 comm_raise로 지정)
select emp_id,
emp_name,
comm_pct,
round(comm_pct * 1.08, 2) as "comm_raise"
from emp
where comm_pct is not null;
case를 이용한 정렬
: 함수가 아닌 연산자이다.
CASE 구문)
<case문 동등비교>
case 컬럼 when 비교값 then 출력값
[when 비교값 then 출력값]
[else 출력값]
end
<case문 조건문>
case when 조건 then 출력값
[when 조건 then 출력값]
[else 출력값]
end
예제)
-- 직원들의 모든 정보를 조회한다. 단 정렬은 업무(job)가
-- 'ST_CLERK', 'IT_PROG', 'PU_CLERK', 'SA_MAN' 순서대로 먼저나오도록 한다. (나머지 JOB은 상관없음)
select job from emp
order by case job when 'ST_CLERK' then 1
when 'IT_PROG' then 2
when 'PU_CLERK' then 3
when 'SA_MAN' then 4
else job end;
반응형
'데이터 분석일기 > sql' 카테고리의 다른 글
SQL: 조인(JOIN) (0) | 2023.09.05 |
---|---|
SQL Basic (0) | 2023.08.31 |
SQL : Database (0) | 2023.08.30 |