IF 문
형식 : if ( 조건문, 참일때 값, 거짓일때 값)
EX) select member_id, if ( isnull(birthday), '-', birthday ) from member
설명 - 멤버 테이블에서 아이디(member_id) 와 생일을 뽑는데 null 일경우는 - 를 출력,
아니면 생일을 출력
Case 문
형식 : case (조건 또는 값)
when 값1 then 표시값
when 값2 then 표시값
else 표시값
end
EX) select case a when '1' then a when '2' then b else c end from table_name
설명 - a 값이 '1'이면 a, '2' 이면 b, 둘다 아닐경우 c 를 출력
ifnull문 ( mysql 에서 사용 )
형식 : ifnull ( 값1, 값2)
EX ) select ifnull ( price, 0 ) from books
설명 - price 값이 Null 이면 0을, Null 이 아니면 price 값을 출력
isnull문 ( MS-SQL 에서 사용 )
형식 : ifnull ( 값1, 값2)
EX ) select isnull ( price, 0 ) from books
설명 - price 값이 Null 이면 0을, Null 이 아니면 price 값을 출력
NVL문 ( Oracle 에서 사용 )
형식 : NVL ( 값1, 값2)
EX ) select nvl ( price, 0 ) from books
설명 - price 값이 Null 이면 0을, Null 이 아니면 price 값을 출력
%% OPENQUERY : 원격 DB 서버에서 데이터를 가지고 오는 것
-- WHERE 조건은 OpenQuery 안에 넣어서 처리하는 것이 최적화가 쉽다.
Select
SELECT * FROM OPENQUERY([ip], 'SELECT * FROM table WHERE ');
Insert
INSERT OPENQUERY(L_TESTDB, 'SELECT * FROM table WHERE ') VALUES (1, '홍길동');
Update
UPDATE OPENQUERY(L_TESTDB, 'SELECT * FROM table WHERE ') SET NAME = '홍길동';
Delete
DELETE FROM OPENQUERY(L_TESTDB, 'SELECT * FROM table WHERE ');
-- 로컬 서버의 DB (Linked Server) SELECT * FROM [192.168.0.1].[데이터베이스].dbo.[테이블] WHERE no < 101; -- 로컬 서버의 DB (Linked Server) SELECT * FROM [데이터베이스].dbo.[테이블] WHERE no < 101;
%% DECLARE : 쿼리 내에 변수 선언
Set : 변수 초기화
Exec : 실행
Declare @strQuery varchar(1024)
Declare @no char(6) = '001553'
Set @strQuery = 'SELECT * FROM Openquery(
[192.168.0.1], '''
+ ' SELECT id FROM [데이터베이스].dbo.[테이블] WHERE no = '''+ @no +''' '
+ ''')'
--Exec SP_EXECUTESQL @strQuery
Exec (@strQuery);
Set @no varchar(100) = '2,4'
Set @strQuery = 'SELECT * FROM Openquery(
[192.168.0.1], '''
+ ' SELECT * FROM [데이터베이스].dbo.[테이블] WHERE no in ('+ @no +') '
+ ''')'
Exec (@strQuery);
출처 : http://tofriendy.tistory.com/26
출처 : SPATIUM
'Programming Language > Database' 카테고리의 다른 글
트랙잰션 개념 정리 (0) | 2016.05.12 |
---|---|
오라클에서 insert문을 사용하는 메소드에서 int변수를 사용하지 않고 Integer변수를 사용하는 이유 (0) | 2016.05.12 |
[오라클] insert시 numbering된 sequence 값을 바로 받아 오는 법 (0) | 2016.05.12 |