본문 바로가기

반응형

msSQL

(69)
[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] 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] STUFF, REPLACE 문자열 치환 문자열 치환 함수 STUFF, REPLACE에 대해 알아보자 STUFF STUFF('문자열', 시작위치, 크기, '대체문자열') 문자열에서 시작위치와 크기를 지정하여 원하는 문자로 변경한다. 예제. name컬럼 문자열의 2번째 문자부터 n개의 문자를 '*'로 변경해보자 SELECT name , STUFF(name, 2, 1, '*') AS 'Stuff1' , STUFF(name, 2, 2, '*') AS 'Stuff2' , STUFF(name, 2, 3, '*') AS 'Stuff3' , STUFF(name, 2, 4, '*') AS 'Stuff4' FROM table_ggmouse REPLACE REPLACE('문자열', '변경할문자열', '대체문자열') 문자열에서 특정 문자를 원하는 문자로 변경한다...
[MSSQL] INSERT (데이터 삽입), SELECT INTO (테이블 복사), INSERT INTO SELECT (데이터 복사) INSERT 테이블에 데이터 삽입한다. INSERT INTO 테이블명(칼럼1,칼럼2,칼럼3,...) VALUES(데이터1,데이터2,데이터3,...) INSERT INTO table_ggmouse(name, age) VALUES('bella', 30) INSERT INTO table_ggmouse(name, age) VALUES('zzong', 25) INSERT INTO table_ggmouse(name, age) VALUES('sohee', 28) SELECT * FROM table_ggmouse INSERT INTO SELECT 테이블의 데이터를 대상 테이블에 복사한다. 위에서 설명한 단순 INSERT문은 데이터를 한줄씩 넣는 방식이다. 만일 다른 테이블의 있는 다량의 데이터를 가져와서 한 번에 삽입..

반응형