(MS SQL) 삽입시Insert 최대값 추가 +1

[MS SQL] 삽입시Insert 최대값 추가 +1

프로그램

최대값에서 1을 더한 값을 삽입하고 싶을때 mssql에서는 Insert 문을 사용할때 시퀀스를 사용할 수도 있지만, 그렇지 않을 경우에 아래와 같은 쿼리를 사용할 수 있습니다.


1
2
3
4
5
6
7
8
9
INSERT INTO user
(user
, age
, order)
VALUES
('dully'
, 29
, (SELECT ISNULL(MAX(order) + 1, 1) FROM user))
;

여기서 주의 깊게 봐야하는 쿼리는 SELECT ISNULL(MAX(order) + 1, 1) FROM user 입니다.
아주 간단한 ISNULL()과 MAX()를 함께 사용하는데요.


-ISNULL()

ISNULL()은 데이터가 null인 부분을 조회하는 쿼리 입니다. 반대의 예시는 아래와 같습니다. 값이 있는 부분을 조회하는 쿼리죠.

1
2
3
4
SELECT FirstName, LastName, MiddleName
FROM DIMEmployee
WHERE MiddleName IS NOT NULL
ORDER BY LastName DESC;

-MAX()

MAX()는 데이터 중 가장 큰 값을 조회합니다. 간단한 예시는 아래와 같습니다. () 괄효 안에 조회하고 싶은 컬럼 이름을 적으시면 됩니다.

1
2
SELECT MAX(TaxRate)
FROM Sales.SalesTaxRate;

### -Result

SELECT MAX(order) + 1 FROM user 으로도 최대값에 1을 더한 값을 구할 수 있지만, 위의 order의 값이 null일 경우를 대비해서 null일 경우에 1을 삽입하도록 하였습니다.

1
2
SELECT ISNULL(MAX(order) + 1, 1) FROM user
//SELECT ISNULL('null이 아닐경우 실행 됨', 'null일때 실행됨') FROM user

-SQL Advanced SQL 중급 문법
-Oracle-Join 오라클 조인 문법
-SQL basic SQL 기본 문법
-PostgreSql 란?

Share