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

2007/10/12 10:35 2007/10/12 10:35
, ,
Response
A trackback , No Comment
RSS :
http://twins.tomeii.com/rss/response/51


블로그 이미지

be strong and of good courage //

- Twins

Archives

Authors

  1. Twins

Calendar

«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Site Stats

Total hits:
80093
Today:
65
Yesterday:
115