SQL에서도 사칙연산(+, -, *, /, %)이 가능합니다. 연산 우선순위는 기본적으로 동일하며, 괄호로 명시하면 우선순위 지정이 가능합니다.
SELECT 2022 - 1934; -- 결과: 88
SELECT 2021 - NULL; -- 결과: NULL
SELECT 3 / 2; -- 정수 나눗셈 → 결과: 1 (소수점 버림)
SELECT 3.0 / 2; -- 실수 포함 시 → 결과: 1.5
SELECT 3 / 0; -- 0으로 나누기 → 에러 발생
SELECT ROUND(3.141592, 3); -- 반올림 → 결과: 3.142
SELECT POWER(2, 3); -- 2의 3승 → 결과: 8
SELECT COS(0); -- 코사인 0 → 결과: 1
참고: 다양한 함수는 SQL Server 공식 문서를 참고하세요!
players 테이블에서 한국 나이를 계산하고, 사망하지 않았고 생년이 존재하며 80세 미만인 사람만 조회하는 쿼리:
SELECT 2021 - birthYear + 1 AS koreanAge
FROM players
WHERE deathYear IS NULL
AND birthYear IS NOT NULL
AND (2021 - birthYear + 1) <= 80
ORDER BY koreanAge;
✅
SELECT의 별칭(koreanAge)은WHERE절에서 사용할 수 없습니다.
⛔ 다음 코드는 에러 발생합니다:WHERE koreanAge <= 80 -- 사용 불가
SELECT 'Hello World';
한글 출력 시 깨짐 현상 발생 가능:
SELECT '안녕하세요'; -- 결과: ????
SELECT N'안녕하세요'; -- 앞에 N을 붙이면 유니코드로 처리
SELECT 'Hello ' + 'World';
SELECT CONCAT('Hello', 'World');
+연산자 또는CONCAT함수 모두 사용 가능.
SELECT nameFirst + ' ' + nameLast AS fullName
FROM players
WHERE nameFirst IS NOT NULL
AND nameLast IS NOT NULL;
-- 부분 문자열 추출 (1부터 시작!)
SELECT SUBSTRING('20220822', 1, 4); -- 결과: 2022
-- 앞뒤 공백 제거
SELECT TRIM(' Hello World '); -- 결과: Hello World
TRIM,SUBSTRING,LEN,LEFT,RIGHT,REPLACE등 다양한 문자열 함수도 SQL에서 사용 가능.