정리

mssql 쿼리

디벨로프로 2020. 3. 9. 17:41
반응형



-------------
— 문자열 채우기 replicate()
0부터 300까지 데이터 업데이트

 

UPDATE x 
SET x.과목번호 = replicate('0',3 - len(x.New_CODE_DEST)) 
FROM ( 
      SELECT 과목번호, ROW_NUMBER() OVER (ORDER BY 과목명) AS New_CODE_DEST 
      FROM 교과_교과목코드 
      ) x 



— ORDER BY 과목명 순으로 ROW_NUMBER 테이블 생성 후 UPDATE 실행

UPDATE x 
SET x.과목번호 = 20180000+x.num 
FROM ( 
      SELECT 과목번호, ROW_NUMBER() OVER (ORDER BY 과목명) AS num 
      FROM 교과_교과목코드 
      ) x 



— 확인

SELECT * FROM 교과_교과목코드 ORDER BY 과목명 ASC 



— ALTER TBLE

ALTER TABLE 교과_교과목코드 ALTER COLUMN 과목번호 int 




— SELECT

SELECT * FROM 개설강좌 
SELECT * FROM 수강신청 
SELECT * FROM 학적마스터 



— INSERT INTO SELECT
인설트 입력후 셀렉트로 테이블을 불러오면 셀렉트 되는 값이 모두 저장된다.

insert into 수강신청 (캠퍼스구분,연도,학기구분,학번,과목번호,개설학년,반,학점,과목명,과목명영문,학생학년) 
select 캠퍼스구분,연도,학기구분,학번,과목번호,개설학년,반,학점,과목명,과목명영문,학년 as 학생학년 
FROM 학적마스터 A, 개설강좌 B where 캠퍼스구분 = 001 AND  (학년 = 7 or 학년 = 10) and 과목명 ='IDINO_국어' 

insert into 수강신청 (캠퍼스구분,연도,학기구분,학번,과목번호,개설학년,반,학점,과목명,과목명영문,학생학년) 
select 캠퍼스구분,연도,학기구분,학번,과목번호,개설학년,반,학점,과목명,과목명영문,학년 as 학생학년 
FROM 학적마스터 A, 개설강좌 B where 캠퍼스구분 = 001 AND  (학년 = 8 or 학년 = 11) and 과목명 ='IDINO_영어' 

SELECT * FROM 수강신청 



— 테이블 생성

 

수강신청

create table 수강신청( 
캠퍼스구분 VARCHAR(5) , 
연도 INT , 
학기구분 INT , 
학번 VARCHAR(20) , 
과목번호 VARCHAR(10) , 
개설학년 INT , 
반 VARCHAR(10) , 
학점 DECIMAL(5,2) , 
과목명 VARCHAR(200) , 
과목명영문 VARCHAR(200) , 
학생학년 INT , 
점수 DECIMAL(5,2) , 
총점 DECIMAL(5,2) , 
평점 DECIMAL(5,2) , 
등급 VARCHAR(5) 
)


개설강좌

create table 개설강좌( 
연도 INT, 
학기구분 INT, 
개설학년 INT, 
반 VARCHAR(10), 
과목번호 VARCHAR(10), 
과목명 VARCHAR(200), 
과목명영문 VARCHAR(200), 
학점 DECIMAL(5,2), 
수강정원 INT, 
담당교사사번 VARCHAR(20), 
)

 

— 개설강좌 테이블에 데이터 입력

INSERT INTO 개설강좌 values( 
2018,1,7,A,20180270,IDINO_국어,Korean 7,2.00,50,2006020101 
) 

INSERT INTO 개설강좌 values( 
2018,1,8,A,20180271,IDINO_영어,English 8,2.00,50,2003092901 
)

 

— 테이블 삭제

DROP TABLE 교과_교과목코드;

 

 

 

 기타 함수


concat 문자열 합치기
replicate 문자열 갯수 지정하기