SELECT
    CAST("123" AS SIGNED) + 1;

위와 같이 CAST 함수를 이용하여 문자열 타입이었던 "123"을 정수형 123으로 치환해서 1을 더할 수 있게 된다.

 

SIGNED 대신 UNSIGNED 사용 시 출력값이 음수가 되면 out of range가 뜬다. 절대값 출력일 것이라 생각했으나 단순히 양수만 처리 가능한 것 같다.

 

SIGNED 대신 DECIMAL 사용 시 실수 처리 가능.

'IT > Database' 카테고리의 다른 글

[RDBMS] UNION & JOIN  (0) 2021.10.07
[RDBMS] 서브 쿼리  (0) 2021.10.06
[RDBMS] IFNULL, NULLIF 함수  (0) 2021.10.06
[RDBMS] CASE 함수  (0) 2021.10.06
[RDBMS] IF 함수 및 함수 중첩(nest)  (0) 2021.10.06

IFNULL(인수1, 인수2)

  1. 인수1이 NULL이 아니면 인수1 반환, NULL이면 (2)번 과정으로.
  2. 인수2가 NULL이 아니면 인수2 반환, NULL이면 NULL 반환.

 

SELECT
    *
FROM
    product
ORDER BY
    IFNULL(price, 999999) ASC;

 

price가 NULL일 경우에 값을 999999로 만들어서 맨 마지막에 위치하도록 정렬한다.

 

NULLIF(인수1, 인수2)

  1. 인수1 = 인수2 → NULL 반환
  2. 인수1 ≠ 인수2 → 인수1 반환

데이터가 NULL일 경우에 0이 아닌 NULL 그대로 나오게 해야할 경우 사용한다.

ex) 나눗셈의 분모 지정 시

'IT > Database' 카테고리의 다른 글

[RDBMS] 서브 쿼리  (0) 2021.10.06
[RDBMS] CAST 함수  (0) 2021.10.06
[RDBMS] CASE 함수  (0) 2021.10.06
[RDBMS] IF 함수 및 함수 중첩(nest)  (0) 2021.10.06
[RDBMS] WHERE와 HAVING의 차이  (0) 2021.10.05

+ Recent posts