DB를 배워본적 없는 나로서는..... 'concat'은 첨 보는것 -_-;; 쿨럭;;;;(아잉 몰라)
CONCAT 하기 : 들어온 값을 뒤에 부터 자르면서 비교하여 결과를 얻음
예를 들어 디비에 들어있는 값이 아래와 같을 경우 입력 받은 값은 15210055000401이다.
+--------------+--------------+--------------+---------------+
| SVC_PFX| SVC_LOGIC| MSG_TYPE| DESCRIPTION|
+--------------+--------------+--------------+---------------+
| 152100550004| MCNF| SMS| Conference|
| 152100550005| MCNF| NORMAL| Conference|
+---------------+--------------+-------------+---------------+
PreparedStatement 일 때 "select MSG_TYPE from SVC_LOGIC_LIST where ? like concat(SVC_PFX, '%');"
일반 Sql : select MSG_TYPE from SVC_LOGIC_LIST where '15210055000401' like concat(SVC_PFX, '%');
(MDB) select MSG_TYPE from SVC_LOGIC_LIST where '15210055000401' like concat(SVC_PFX, '%');
Ok, 1 row is selected.
+--------------------------+
| MSG_TYPE |
+--------------------------+
| SMS |
+--------------------------+
이하 펌)....
SQL> select ename, job,sal
2 from emp
3 order by job desc,sal
4 ;
ENAME JOB SAL
---------- --------- ----------
WARD SALESMAN 1250
MARTIN SALESMAN 1250
TURNER SALESMAN 1500
ALLEN SALESMAN 1600
KING PRESIDENT 5000
CLARK MANAGER 2450
BLAKE MANAGER 2850
JONES MANAGER 2975
SMITH CLERK 800
JAMES CLERK 950
ADAMS CLERK 1100
ENAME JOB SAL
---------- --------- ----------
MILLER CLERK 1300
SCOTT ANALYST 3000
FORD ANALYST 3000
SQL> select ename || job (연결 해준데~)
2 from emp;
ENAME||JOB
-------------------
SMITHCLERK
ALLENSALESMAN
WARDSALESMAN
JONESMANAGER
MARTINSALESMAN
BLAKEMANAGER
CLARKMANAGER
SCOTTANALYST
KINGPRESIDENT
TURNERSALESMAN
ADAMSCLERK
ENAME||JOB
-------------------
JAMESCLERK
FORDANALYST
MILLERCLERK
14 개의 행이 선택되었습니다.
SQL> select ename||' '||job (''로 문자열이나 공백이 들어간데~)
2 from emp;
ENAME||''||JOB
---------------------
SMITH CLERK
ALLEN SALESMAN
WARD SALESMAN
JONES MANAGER
MARTIN SALESMAN
BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
TURNER SALESMAN
ADAMS CLERK
ENAME||''||JOB
---------------------
JAMES CLERK
FORD ANALYST
MILLER CLERK
14 개의 행이 선택되었습니다.
SQL> --아래와 같이 출력하시오
SQL> -- 예> miller의 업무는 clerk 이고 급여는 1300
SQL> select ename||'의 업무는'||job||'이고 급여는'||sal
2 from emp;
ENAME||'의업무는'||JOB||'이고급여는'||SAL
-------------------------------------------------------------------------------
SMITH의 업무는CLERK이고 급여는800
ALLEN의 업무는SALESMAN이고 급여는1600
WARD의 업무는SALESMAN이고 급여는1250
JONES의 업무는MANAGER이고 급여는2975
MARTIN의 업무는SALESMAN이고 급여는1250
BLAKE의 업무는MANAGER이고 급여는2850
CLARK의 업무는MANAGER이고 급여는2450
SCOTT의 업무는ANALYST이고 급여는3000
KING의 업무는PRESIDENT이고 급여는5000
TURNER의 업무는SALESMAN이고 급여는1500
ADAMS의 업무는CLERK이고 급여는1100
ENAME||'의업무는'||JOB||'이고급여는'||SAL
-------------------------------------------------------------------------------
JAMES의 업무는CLERK이고 급여는950
FORD의 업무는ANALYST이고 급여는3000
MILLER의 업무는CLERK이고 급여는1300
14 개의 행이 선택되었습니다.
SQL> select concat(empno,ename) (||과 같은 기능)
2 from emp;
CONCAT(EMPNO,ENAME)
--------------------------------------------------
7369SMITH
7499ALLEN
7521WARD
7566JONES
7654MARTIN
7698BLAKE
7782CLARK
7788SCOTT
7839KING
7844TURNER
7876ADAMS
CONCAT(EMPNO,ENAME)
--------------------------------------------------
7900JAMES
7902FORD
7934MILLER
14 개의 행이 선택되었습니다.
SQL> select concat(ename,'의') (concat는 한글자만 연결할수 있다)
2 from emp;
CONCAT(ENAME
------------
SMITH의
ALLEN의
WARD의
JONES의
MARTIN의
BLAKE의
CLARK의
SCOTT의
KING의
TURNER의
ADAMS의
CONCAT(ENAME
------------
JAMES의
FORD의
MILLER의
14 개의 행이 선택되었습니다.
SQL> /* select 절
DOC> from 절
DOC> where 조건절
DOC> order by 절 */
SQL> --사원번호가 7369인 사원의 모든 정보를 출력
SQL> select *
2 from emp
3 where empno=7369
4 ;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 80/12/17 800
20
SQL> --상사의 사원번호가 7839인 사원의
SQL> --사원번호,사원명,부서번호를 출력
SQL> select empno,ename,deptno
2 from emp
3 where mgr=7839;
EMPNO ENAME DEPTNO
---------- ---------- ----------
7566 JONES 20
7698 BLAKE 30
7782 CLARK 10
SQL> --위의 문항에서 이름을 오름차순하여 출력하시오
SQL> select empno,ename,deptno
2 from emp
3 where mgr=7839
4 order by ename asc;
EMPNO ENAME DEPTNO
---------- ---------- ----------
7698 BLAKE 30
7782 CLARK 10
7566 JONES 20
SQL>
(출처 : http://blog.naver.com/hipbab?Redirect=Log&logNo=80040754533)
Posted by Twins

