1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | -- 성적 테이블 생성 CREATE TABLE 성적( 번호 TINYINT, 이름 CHAR(8), 국어 TINYINT, 영어 TINYINT, 수학 TINYINT ) -- 성적 테이블 데이터 입력 INSERT INTO 성적( 번호, 이름, 국어, 영어, 수학 ) VALUES ( 1, '홍길동', 79, 80, 80 ) INSERT INTO 성적( 번호, 이름, 국어, 영어, 수학 ) VALUES ( 2, '임꺽정', 79, 85, 80 ) INSERT INTO 성적( 번호, 이름, 국어, 영어, 수학 ) VALUES ( 3, '박찬호', 70, 80, 80 ) -- 총점, 평균 컬럼 추가 ALTER TABLE 성적 ADD 총점 SMALLINT ALTER TABLE 성적 ADD 평균 TINYINT -- 총점, 평균 값 지정 UPDATE 성적 SET 총점 = 국어 + 영어 + 수학, 평균 = 총점 / 3 -- 등급 컬럼 추가 ALTER TABLE 성적 ADD 등급 TINYINT -- 커서 이용 등급처리 DECLARE 등급처리 CURSOR FOR SELECT 번호, 총점 FROM 성적 OPEN 등급처리 DECLARE @NUMB TINYINT, @SUM SMALLINT FETCH NEXT FROM 등급처리 INTO @NUMB, @SUM WHILE @@FETCH_STATUS = 0 BEGIN UPDATE 성적 SET 등급 = 1 + ( SELECT COUNT(*) FROM 성적 WHERE 총점 > @SUM ) WHERE 번호 = @NUMB FETCH NEXT FROM 등급처리 INTO @NUMB, @SUM END CLOSE 등급처리 DEALLOCATE 등급처리 [출처] MSSQL - 커서|작성자 nonoll |
'SQL' 카테고리의 다른 글
[MSSQL] 반올림, 소수점 자르기 (0) | 2014.08.07 |
---|---|
[MSSQL] db내 모든 테이블에서 자료를 검색 (1) | 2014.07.25 |
[MSSQL] 테이블 검색 (0) | 2014.07.09 |
[MSSQL] with(nolock) (0) | 2014.04.30 |
[MSSQL] 테이블 컬럼 및 프로시저 특정단어 검색 (0) | 2014.04.21 |