본문 바로가기

반응형

프로그래밍/MSSQL

(76)
[MSSQL] TOP with UPDATE, DELETE (N개의 행만 수정, 삭제) UPDATE TOP (n) 혹은 DELTE TOP (n) 를 이용하여 n 개의 행만 수정해보자 일반적으로 UPDATE문은 다음과 같이 사용한다. UPDATE 테이블명 SET 컬럼명 = '값' WHERE 조건 이때 WHERE 조건에 해당하는 모든 행은 SET 에서 설정한 대로 모두 변경된다. 그러나, 조건에 맞는 행 중에서 N개의 행만 UPDATE 해주고 싶을 때 UPDATE TOP (n) 테이블명 SET 컬럼명 = '값' WHERE 조건 이렇게 쿼리를 작성해주면 조건에 해당하는 모든 행 중에서 N개의 행만 UPDATE가 적용된다. 예제1) UPDATE 컬럼 수정 UPDATE TOP(2) table_ggmouse SET age = 99 예제2) DELETE 컬럼 삭제 DELETE TOP(2) table_g..
[MSSQL] IF ELSE 조건문 (+ PRINT 구문 사용 주의) IF ELSE 구문 (조건문) IF (조건식) BEGIN 조건식이 참일경우 SQL구문 END ELSE BEGIN 조건식이 거짓일경우 SQL구문 END IF (조건식1) BEGIN 조건식1이 참일경우 SQL구문 END ELSE IF (조건식2) BEGIN 조건식1이 거짓이고, 조건식2가 참일경우 SQL구문 END ELSE BEGIN 조건식1,2 모두 거짓일경우 SQL구문 END 예제와 함께 살펴보자 조건식 (1=1)이 참일 경우 IF의 BEGIN... END 안에 있는 SQL 구문이 실행된다. IF (1=1) BEGIN PRINT('참') END ELSE BEGIN PRINT('거짓') END 조건식 (1=2)이 거짓일 경우 ELSE의 BEGIN... END 안에 있는 SQL 구문이 실행된다. IF (1=..
[MSSQL] ISDATE, ISNUMERIC, ISNULL, ISJSON ISDATE ISDATE(expression nvarchar(1)) RETURNS int 해당 값이 DATETIME (날짜 값)이면 1을 반환하고, 아닐 경우 0을 반환한다. SELECT ISDATE('20191115') AS '1', ISDATE('2019-11-15') AS '2', ISDATE(GETDATE()) AS '3', ISDATE('2019-11-55') AS '4', ISDATE('ggmouse') AS '5', ISDATE(10) AS '6', ISDATE(NULL) AS '7', ISDATE('') AS '8' ISNUMERIC ISNUMERIC(expression) RETURNS int 해당 값이 NUMERIC (숫자 값)이면 1을 반환하고, 아닐 경우 0을 반환한다. SELECT ..
[MSSQL] paging 페이징 처리 (OFFSET ROWS FETCH) (MySQL LIMIT) paging query 데이터를 5개씩 보여주는 페이징 쿼리를 작성해보자 DECLARE @PAGE_NO INT = 1 -- 페이지 번호 DECLARE @PAGE_SIZE INT = 5 -- 한 페이지에 보여줄 row 수 SELECT rownum , name , age , totalCnt FROM ( SELECT ROW_NUMBER() OVER(ORDER BY age) AS rownum , name, age , COUNT(*) OVER() AS totalCnt FROM table_ggmouse ) A WHERE rownum BETWEEN ((@PAGE_NO-1)*@PAGE_SIZE)+1 AND (@PAGE_NO*@PAGE_SIZE) OFFSET ROWS FETCH SQL Server 2012부터 지원되는 ..
[MSSQL] GROUP BY COUNT 그룹으로 묶어 집계하기 GROUP BY COUNT 그룹으로 묶은 후 집계해보자 위와 같은 데이터가 있을 때 우리는 name을 기준으로 count를 구할 것이다. 1. name 칼럼을 기준으로 그룹별로 count 2. name 컬럼을 기준으로 총 count 3. name 컬럼 값 + name 칼럼을 기준 총 count 함께 출력 (count를 컬럼으로) 1. name 칼럼을 기준으로 그룹별로 count SELECT name, COUNT(name) AS cnt FROM table_ggmouse GROUP BY name 2. name 컬럼을 기준으로 총 count SELECT COUNT(name) AS cnt FROM ( SELECT name FROM table_ggmouse GROUP BY name ) A 3. name 컬럼 값 ..

반응형