0Pricing
SQL Interview Prep · 강의

계산 열과 수식 우선순위

SELECT 목록 안에서의 산술, 연결, 연산자 우선순위를 다룹니다.

계산 열과 수식 우선순위은(는) CoddyKit의 무료 SQL Interview Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 SQL Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. SQL Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

SELECT의 계산 열

계산 열은 값을 직접 읽는 대신 값을 도출하는 SELECT의 표현식입니다. 예를 들면 가격 * 수량과 같습니다. 항상 깔끔한 별칭을 지정하십시오.

SELECT product,
       price,
       quantity,
       price * quantity AS line_total
FROM order_items;

산술 연산자

SQL에는 예상하시는 수학 연산자인 +, -, *, /와 나머지 연산자가 있습니다. 결과의 자료형은 피연산자를 따르며, 바로 다음 함정이 숨어 있는 지점입니다.

SELECT 7 + 3 AS sum_val,
       7 - 3 AS diff_val,
       7 * 3 AS prod_val,
       7 % 3 AS remainder;

정수 나눗셈의 함정

주의하십시오. 두 정수를 나누면 정수 나눗셈이 수행되므로 5 / 2는 2.5가 아닌 2가 됩니다. 한쪽을 십진수로 CAST하거나 1.0을 곱해 해결하십시오.

SELECT 5 / 2          AS int_div,    -- 2
       5 * 1.0 / 2    AS real_div,   -- 2.5
       CAST(5 AS DECIMAL) / 2 AS cast_div; -- 2.5

연산자 우선순위

SQL은 일반적인 수학의 우선순위를 따릅니다. *와 /가 +와 -보다 먼저 실행됩니다. 따라서 2 + 3 * 4는 20이 아니라 14입니다. 괄호가 모든 것을 재정의합니다.

SELECT 2 + 3 * 4      AS no_parens,  -- 14
       (2 + 3) * 4    AS with_parens; -- 20

실제 할인 쿼리에서의 우선순위

우선순위 오류는 비즈니스 로직에서 자주 발생합니다. 할인된 가격을 계산할 때는 가격 - 가격 * 할인율이 올바릅니다. *가 먼저 실행되기 때문입니다. 엔진이 실제로 사용하는 그룹화를 항상 점검하십시오.

SELECT price,
       discount_rate,
       price - price * discount_rate / 100 AS net_price
FROM products;

문자열 연결

텍스트를 연결하는 방법은 데이터베이스에 따라 다릅니다. Postgres와 표준 SQL에서는 || 를, SQL Server에서는 +를, MySQL에서는 CONCAT()를 사용합니다. CONCAT()가 안전하고 이식성 있는 선택입니다.

-- Postgres / standard
SELECT first_name || ' ' || last_name AS full_name
FROM employees;

-- Portable
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;

NULL은 산술 연산을 무효화합니다

중요한 내용입니다. NULL이 포함된 모든 수학 연산은 NULL을 반환합니다. 따라서 보너스가 없는 사람의 기본급 + 보너스는 NULL입니다. 위험할 수 있는 열을 COALESCE로 감싸 기본값을 제공하십시오.

SELECT base_salary,
       bonus,
       base_salary + bonus            AS unsafe_total,
       base_salary + COALESCE(bonus,0) AS safe_total
FROM employees;

방언별 문자열 연결과 NULL

NULL은 텍스트에도 영향을 주며 방언마다 다르게 처리됩니다. Postgres에서는 전체 문자열이 사라지는 반면, SQL Server의 CONCAT은 NULL을 빈 문자열로 처리합니다. 예측 가능한 출력이 필요하다면 각 부분을 COALESCE로 감싸십시오.

SELECT COALESCE(first_name,'') || ' ' || COALESCE(last_name,'') AS full_name
FROM employees;

표현식 안의 함수

계산 열에서는 ROUND, ABS 또는 UPPER 같은 함수를 자유롭게 사용할 수 있습니다. 함수 호출도 그저 또 하나의 표현식이므로 수식 안에 바로 중첩할 수 있습니다.

SELECT product,
       ROUND(price * quantity * 1.0, 2) AS line_total,
       UPPER(product)                   AS product_caps
FROM order_items;

자료형 변환과 CAST

피연산자의 자료형이 다르면 SQL은 예상하지 못한 암시적 변환을 수행할 수 있습니다. CAST(표현식 AS 자료형)을 사용해 명시적으로 작성하십시오. 면접관은 이를 신중하고 방어적인 코드로 봅니다.

SELECT 'Order #' || CAST(order_id AS VARCHAR) AS label
FROM orders;

열로 사용하는 불리언 표현식

가격 > 100과 같은 비교 자체도 표현식입니다. Postgres에서는 이를 참/거짓으로 선택할 수 있지만, 이식성 있는 답변에서는 CASE로 감싸 1/0 또는 레이블을 출력합니다.

-- Portable
SELECT product,
       CASE WHEN price > 100 THEN 1 ELSE 0 END AS is_pricey
FROM products;

빠른 확인

표현식을 계산합니다.

복습

복습해 보겠습니다. 계산 열에 별칭을 지정하십시오. 소수 나눗셈에는 CAST를 사용하고 우선순위에 주의하며, 이식성 있는 텍스트 처리에는 CONCAT()를 사용하십시오. 또한 NULL은 수학 연산을 무효화하므로 COALESCE로 보호해야 합니다.

자주 묻는 질문

“계산 열과 수식 우선순위” 강의는 무료인가요?

네 — “계산 열과 수식 우선순위” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 SQL Interview Prep 강의 전체를 잠금 해제할 수 있습니다. SQL Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“계산 열과 수식 우선순위”에서 뭘 배우나요?

SELECT 목록 안에서의 산술, 연결, 연산자 우선순위를 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 SQL Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

SQL Interview Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 SQL Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“계산 열과 수식 우선순위” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 SQL Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 SQL Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 열 투영과 별칭의 함정
  2. 계산 열과 수식 우선순위
  3. 고유성 판단에서 DISTINCT와 GROUP BY 비교하기
  4. SELECT에서 CASE 수식 사용하기
← SQL Interview Prep(으)로 돌아가기