--  1,2 컬럼값이 서로 같고 3컬럼값만 다른경우
SELECT * FROM A, B
WHERE (A.1 = B.1 AND A.2 = B.2)
AND A.3 <> B.3;

--  1,3컬럼값은 같고  2컬럼값만 다른 경우
SELECT * FROM A, B
WHERE (A.1 = B.1 AND A.3 = B.3)
AND A.2 <> B.2;

--  2,3컬럼값은 같고  1컬럼값만 다른 경우
SELECT * FROM A, B
WHERE (A.2 = B.2 AND A.3 = B.3)
AND A.1 <> B.1;


--  1,2,3 컬럼이 전부 다른 경우
SELECT * FROM A, B
WHERE A.1 <> B.1 AND A.2 <> B.2
AND A.3 <> B.3;

 

출처 - http://www.gurubee.net/article/59245

 

--------------------------------------------------------

 

SELECT A.TIMS_DATE,
       A.FUND_CODE,
       A.FUND_NAME,
       A.BM_INDEX,
       B.BM_INDEX,
       A.BM_RATE,
       B.BM_RATE
  FROM IFT_FUND_STANDARD_PRICE_RESULT A, IFT_FUND_STANDARD_MODIFY B
 WHERE     (A.BM_INDEX <> B.BM_INDEX OR A.BM_RATE <> B.BM_RATE)
       --AND A.TIMS_DATE = '20171104'
       AND A.TIMS_DATE = TO_CHAR(SYSDATE-3, 'YYYYMMDD')
       AND A.TIMS_DATE = B.TIMS_DATE
       AND A.FUND_CODE = B.FUND_CODE

[MYSQL]Toad for mysql 쿼리 정렬방법

Database 2016.06.29 15:01 Posted by 애플자라
ALT + D + F  누르게 되면 자동정렬

 

[ORACLE]OUT JOIN

Database 2013.06.14 17:41 Posted by 애플자라

SELECT A.POST_ID I_POST_ID,
       A.NAME AS I_NAME,
       A.PHONE1 I_R_PHONE1,
       A.PHONE2 I_R_PHONE2,
       A.PHONE3 I_R_PHONE3,
       NVL (B.GUBUN, '신규') AS GUBUN1,
       A.REGISTER_DT I_REGISTER_DT,
       A.GUBUN GUBUN,
       A.EVENT_YN,
       ROW_NUMBER () OVER (ORDER BY REGISTER_DT DESC) RNM,
       A.CELLPHONE
  FROM EVENT A, APLUS_V_CUSTOMER_CELLPHONE B
AND A.CELLPHONE = B.CELLPHONE(+) AND A.NAME = B.CUSTOMER_NM(+)
ORDER BY A.REGISTER_DT DESC

 

A테이블보다 B테이블이 많을때 OUT JOIN

'Database' 카테고리의 다른 글

[ORACLE] 오라클 재구동  (0) 2014.08.13
[MSSQL]MSSQL 2005 유지관리 계획 등록 오류  (0) 2013.07.10
[ORACLE]OUT JOIN  (0) 2013.06.14
[ORACLE]LONG 데이터타입 -> VARCHAR2 데이터로 변환  (0) 2013.06.07
[ORACLE] MERGE INTO  (0) 2013.03.08
[ORACLE] 바이트수 확인  (0) 2013.03.07

[ORACLE]전월 1일, 말일

Database 2012.11.22 14:01 Posted by 애플자라

SELECT TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE,-1)+1)-TO_CHAR(SYSDATE,'DD'),'YYYYMMDD')||TO_CHAR(TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE, -1)))+0.99999421,'YYYYMMDD') AS "대상기간" FROM DUAL

[ORACLE]나이구하기쿼리

Database 2012.11.09 15:40 Posted by 애플자라

SELECT *
FROM
(
SELECT CUSTOMER_NM,
        SUBSTR(REGIDENT_ID, 7, 1),
        REGIDENT_ID,
        TRANSLATE (SUBSTR(REGIDENT_ID, 0, 2), 'X0123456789', 'X'),
        2012 - TO_NUMBER(DECODE(SUBSTR(REGIDENT_ID, 7, 1), '3', 20, '4', 20, 19) || SUBSTR(REGIDENT_ID, 0, 2)) AS AGE,
        REGISTER_DT
FROM CUSTOMER
WHERE SERVICE_CD1 ='Y'
AND ACTIVE_YN = '1'
AND TRANSLATE (SUBSTR(REGIDENT_ID, 0, 2), 'X0123456789', 'X') IS NULL -- 숫자만 가져오는
--AND TRANSLATE (SUBSTR(REGIDENT_ID, 0, 2), 'X0123456789', 'X') IS NOT NULL
-- 문자만 가져오는
) X
WHERE AGE > 65

 

SELECT DECODE (
          SIGN (
             TRANSLATE ('4312a',
                        '0123456789abcdefghijklmnopqrstuvwxyz',
                        '000000000011111111111111111111111111')),1, '문자','숫자')T
  FROM DUAL;

SELECT TRANSLATE ('123AB', 'X0123456789', 'X') FROM DUAL

쿼리 깔끔하게 정리하기

Database 2012.03.14 11:16 Posted by 애플자라

Google 에서 SQL Formatter 로 검색하면 많은 SQL문장 정리 싸이트들이 나온다.

그 중에서 나는 http://www.sqlinform.com가 제일 괜찮은 것 같다.

자바 애플릿으로 Java 언어 등에서 String 으로 연결된 문자열을 그냥 던져줘도 알아서 SQL문만 뽑아내서 정리해준다.
반대로 SQL 문장을 Java 문자열로 연결해주기도 한다.