[SQL] 계산 필드 생성하기

CC·2022년 10월 12일
0

계산 필드 이해하기

  • 테이블에 저장한 데이터와 응용 프로그램이 원하는 형식이 다른 경우 사용한다.
    • 두 정보가 서로 다른 테이블 열에 저장되어 있을 때
    • 서로 다른 열에 저장되어 있지만, 응용 프로그램에서는 하나의 필드로 가져와야 할 때
    • 열 데이터에는 대소문자가 섞여 있지만, 응용 프로그램에서는 모두 대문자로 출력해야 할 때
    • 테이블 내에는 제품의 가격과 수량이 있지만, 최종 가격은 저장하지 않는다. 이 때 최종 가격이 필요할 때
    • 테이블 내에 있는 데이터를 기반으로 합계, 평균, 도는 다른 계산값이 필요할 때
  • 계산 필드는 데이터베이스 테이블에 실제로 존재하지 않는다.
    => 계산 필드는 SQL SELECT문에서 동적으로 생성되기 때문이다.

필드 연결하기

-- _SQL Server_
SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
FROM Vendors
ORDER BY vend_name;

-- _Db2, Oracle, PostgreSQL, SQLite_
SELECT RTRIM(vend_name) || ' (' || RTRIM(vend_country) || ')'
FROM Vendors
ORDER BY vend_name;

-- _MySQL, MariaDB_
SELECT Concat(vend_name , ' (' , vend_country , ')'
FROM Vendors
ORDER BY vend_name;

TRIM 함수

  • RTRIM(): 문자열의 오른쪽에 있는 공백 제거
  • LTRIM(): 문자열의 왼쪽에 있는 공백 제거
  • TRIM(): 양쪽에 있는 공백 제거

별칭(파생열) 사용하기

/* 계산 필드는 단순한 하나의 값으로 이름이 없다.
클라이언트에서 호출할 수 있도록 별칭을 지원한다.
별칭은 AS 키워드를 사용하여 부여한다. */

SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
-- SELECT RTRIM(vend_name) || ' (' || RTRIM(vend_country) || ')'
-- SELECT Concat(vend_name , ' (' , vend_country , ')'
AS vend_title
FROM Vendors
ORDER BY vend_name;

수학 계산 수행하기

-- 계산 필드는 가져온 데이터의 수학적 계산을 수행할 때도 자주 사용한다.

SELECT prod_id, quantity, item_price, (quantity * item_price) AS expanded_price
FROM OrderItems
WHERE order_num = 20008;
연산자설명
+더하기
-빼기
*곱하기
/나누기

0개의 댓글