728x90

-- Select Into 사용 방법

1. Select * Into New_Table_Name From Org_Table_Name

 

2. Select * Into New_Table_Name From Org_Table_Name

       Where Site='한국'

 

 

-- Insert Into 사용 방법

1. 두 테이블의 컬럼이 같을때 SELECT INSERT 하기

두개의 테이블간에 컬럼이 table_a 와 table _b 처럼 완전히 일치할 때는 아래와 같이 간단하게 처리할 수 있습니다.

-- 사용법

INSERT INTO [입력될 테이블명] SELECT * FROM [검색되는 테이블명]

예1) INSERT INTO table_b SELECT * FROM table_a

위의 예1) 에서는 table_a 의 레코드 전체를 table_b 로 삽입(INSERT) 시킵니다. 만약에 조건을 주어 데이터를 삽입(INSERT) 시키려 한다면 아래와 같이 뒤에 WHERE 절만 추가해 주시면 됩니다.

예2)
INSERT INTO table_b SELECT * FROM table_a WHERE seq = 2

위의 SQL 문은 table_a 에서 seq 의 값이 2 인 레코드를 table_b 에 INSERT 시킵니다.

 

 

2 . 두 테이블간의 컬럼이 일치하지 않을때 SELECT INSERT 하기
두개의 테이블간에 컬럼이 table_a 와 table _c 처럼 일치하지 않을때는 아래와 같이 컬럼명을 지정해 주시면됩니다.

-- 사용법

INSERT INTO [입력될 테이블명] (컬럼1, 컬럼2, ... ) SELECT 컬럼1, 컬럼2, ... FROM [검색되는 테이블명]

예3) INSERT INTO table_c ( seq, Name, Email, Idate ) SELECT seq, Name, Email, Idate FROM table_a

위의 예3) 에서는 table_a 의 컬럼중 seq, Name, Email, Idate 컬럼을 table_c 에 Insert 시키고 있습니다. 한가지 주의
할 것은 table_c 의 구조가 table_b 와 다른 만큼 INSERT 될 컬럼이 SELECT 되는 컬럼과 일치하지 않으면 아래와 같은
에러가 발생하게 됩니다.

서버: 메시지 213, 수준 16, 상태 4, 줄 1
삽입 오류: 제공된 값의 개수나 열 이름이 테이블 정의와 일치하지 않습니다.

728x90
728x90

cA_Table
SET A_Column_01 = b.B_Column_01
FROM A_Table a
    INNER JOIN B_Table b
    ON a.A_Key = b.B_Key
WHERE a.A_Key is NOT NULL

 

예를 들어, A_Table의 A_Column_01의 값을 B_Table의 B_Column_01 값으로 업데이트 하려한다. 단, A_Table의 A_Key와 B_Table의 B_Key가 같은 항목에 한해서만 변경이 이루어져야 한다.
* 위와같이 Join이 필요한 업데이트 구문은 다음과 같다.

728x90
728x90

Select object_name(id) From syscomments Where text like '%테이블 명 또는 필드명%'
Group by object_name(id)
Order by object_name(id)

 

 

 

728x90
728x90

SELECT 컬럼1,컬럼2,컬럼3

FROM     테이블
GROUP BY 컬럼1,컬럼2,컬럼3

HAVING COUNT(*) > 1

728x90
728x90

서버쿼데이터를 비교하여, 결과값을 보고자하는 경우.

 

ex) A 테이블과 B 테이블을 비교하여 다른 내용이 있는경우 해당 칼럼을 출력.

 

select * from A where not exists
(select * from B where A.aa = B.aa)

 

A 테이블의 aa와 B 테이블의 aa가 다른 값인 경우, 데이터가 틀린 칼럼만 select문이 수행되어 보여진다.

728x90

+ Recent posts