'쿼리'에 해당되는 글 5건

  1. 2009/02/26 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 (4)
  2. 2008/04/03 Charlie Calvert's Community Blog : Link to Everything: A List of LINQ Providers
  3. 2007/06/29 ORACLE SQL 2차 평가 시험 문제
  4. 2007/06/24 Oracle 달력 쿼리
  5. 2007/05/03 MSSQL NOT IN을 이용한 특정 위치의 글 검색
2009/02/26 08:59

여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능



자주 사용하는 기능인데 귀찮아서 -_ -;;

강좌로 올리진 않았는데..

생각난 김에 잠깐 캡쳐를 해서 샥샥~ 블로깅 합니다.



뭐 하다보면 StringBuilder 일 수 있고 아닐 수도 있지만

유사한 방법으로 활용하시면 될 듯 해요 ㅎㅎ

일단 핵심인 Editplus가 있어야 겠고요.

먼저 다음과 같은 쿼리문을 스트링 빌더(StringBuilder)로 감싸야 한다고 생각해보죠.

뭐 3줄 이니 그냥해도 되지만, 줄이 많은 경우를 가정해서 하는 것이라고 생각해주세요.






먼저 '바꾸기 (Ctrl + H)'를 눌러서 바꾸기 창을 띄우고요.

다음처럼 따라서 누르면 위쪽에 '찾을 말' 부분에 추가가 되거든요.


먼저 한 줄의 시작 부분에



그 뒤부분에 나오는 전체 문자들을 전부 잡을 것이기 때문에
우리가 필요로 하는 부분을 테그로 감싸야 합니다. () 모양인 것이 태그죠.


이제 모든 문자열을 잡습니다. '.' 점(dot)이 그 것을 나타냅니다.


어떤 문자열이든 한 글자 이상 나오면, 그 것을 잡는다는 말이고요.



이제 줄의 끝까지를 잡는다는 말이에요.
결과적으로 한줄의 어떤 문자열이 오든 잡는다는 말이죠. 대신 한 글자라도 있어야 하고요.



그렇게 적용한 후에 아래 '바꿀 말' 부분을 작성해줍니다.

위에서 '찾을 말' 에서 태그 () 로 잡은 안의 문자열 들은 \1 '바꿀 말'의 \1로 변환 되는 거에요.

기존에 있던 글자를 () 괄호 안의 .+ 가 잡은 모든 글자들이 아래처럼 감싸지게 됩니다!!

sb.AppendLine(" 기존의 글 ");


위의 형식으로 잡는다는 말이 되는겁니다. 간단하죠?


이제 '모두 바꾸기' 버튼을 누르면,




다음과 같이 한번에 변환 되는 겁니다.

아주 간단한 팁이지만 - _-;;

아직도 노가다로 코딩하시는 분들을 위해....

아주 약간이나마 팁이 되기를... ㅋㅋ



저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 2 Comment 4

Trackback : http://i-ruru.com/trackback/411 관련글 쓰기

  1. Subject decoder의 생각

    Tracked from decoder's me2DAY 2009/02/26 23:25 delete

    여러줄을 StringBuilder로 감싸기 이거 요긴하게 써먹을 수 있겠구만. :)

  2. Subject sunyruru의 생각

    Tracked from sunyruru's me2DAY 2009/02/27 15:50 delete

    Ruru' Programming :) :: 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 아주 가끔씩은 쓸 일이 있더라구요 ㅎㅎ

  1. Favicon of http://blog.naver.com/gaebit/ BlogIcon 이경배 2009/12/16 10:20 address edit & del reply

    오... 좋은 글 잘 읽었습니다.
    http://blog.naver.com/gaebit/120093613178
    에 제가 만든 프로그램이 있습니다.
    앞뒤로 따옴표 붙혀주는 프로그램인데요. 스트링 빌더 말고 그냥 스트링에 사용하실때 유용하실껍니다.
    스트링빌더나 다른 언어에서 쓸 수 있게 앞뒤에 사용자가 원하는 문자를 붙힐 수 있도록 수정해야겠네요^^;

    • Favicon of http://i-ruru.com BlogIcon 써니루루 2010/01/01 16:01 address edit & del

      잘 만드셨네요~ ㅎㅎ
      앞에랑 뒤에랑 붙일 문자열을 지정할 수 있으면 더 좋을 것 같네요 ~

  2. add 2010/07/19 17:46 address edit & del reply

    예제덕에 쉽게 잘배우고 갑니다.
    감사해요~

  3. 희야 2010/08/05 17:21 address edit & del reply

    난 그냥 바꾸기에서 ^p -> ";);^psb.append(" 하고

    앞뒤만 조금만 수정해줌 -_-;

2008/04/03 11:04

Charlie Calvert's Community Blog : Link to Everything: A List of LINQ Providers


Charlie Calvert's Community Blog : Link to Everything: A List of LINQ Providers


LINQ에 제공되는 프로바이더의 종류가 얼마 없을줄 알았는데 정말 많이 제공되네요 -_ -;;


또한 Filcker나 Amazon 등도 보이고 Oracle 등 MSSQL이 아닌 다른 DataBase Provider도 지원하고, MySQL등도 제공하는 등 멋져보이네요.

일반적인 Framework에서는 MSSQL의 SqlClient만 제공되는 것으로 알았다가 새로운 사실에 조금 놀랍네요.


아직 자세한 내용은 확인해보지 않아서 확실히는 모르겠지만..

위에 목록에 제공되는 것들이 많이 보이니 이용할 가치가 크지 않을까 생각합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/310 관련글 쓰기

2007/06/29 16:17

ORACLE SQL 2차 평가 시험 문제

SQL 문제

 

 ‘OE’ 사용자로 로그인하여 요구 조건을 만족하도록 SQL PL/SQL 구문으로 작성하세요.

 

 

1. 단일 주문으로 가장 주문 금액은 얼마인가? (4)

 

SELECT MAX(ORDER_TOTAL)

FROM OC_ORDERS;

 

결과 :

최고 주문 금액

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

        295892

 

2. ‘online’ 주문 중에서 1 주문 최고 금액으로 주문한 고객은 누구인가? (4)

SELECT c.CUST_LAST_NAME || ' ' || c.CUST_FIRST_NAME

FROM CUSTOMERS c

JOIN ORDERS o ON o.CUSTOMER_ID = c.CUSTOMER_ID

WHERE

o.ORDER_TOTAL = (

  SELECT MAX(ORDER_TOTAL) "max_ord"

  FROM ORDERS

  WHERE ORDER_MODE = 'online'

)

 

Roberts Ishwarya

 

3. 직무가 Sales Manager 사원 ‘Cambrault Gerald’ 관리하는 고객의 수는 명인가? (4)

SELECT SUM(NUM_CUSTOMERS)

FROM ACCOUNT_MANAGERS am

JOIN EMPLOYEES e ON e.employee_id = am.ACCT_MGR

WHERE e.last_name = 'Cambrault' AND e.first_name = 'Gerald' AND e.job_id = 'SA_MAN'

 

: 232

 

4. 'SDRAM - 48 MB' 제품의 주문 건수는 건인가? (4)

SELECT COUNT(*) "건수"

FROM ORDERS o

JOIN ORDER_ITEMS oi ON oi.ORDER_ID = o.ORDER_ID

JOIN PRODUCT_INFORMATION pi ON pi.product_id = oi.product_id

WHERE pi.product_name = 'SDRAM - 48 MB'

 

: 2 ()

5. 'Sydney ' 창고(저장소) 'SDRAM - 48 MB' 제품의 재고 수량은 개인가? (4)

SELECT quantity_on_hand

FROM SYDNEY_INVENTORY

WHERE product_name = 'SDRAM - 48 MB'

 

: 65 ()

 

6. 아래와 같이 고객의 주문 정보를 확인할 있는 프로시져 ‘info_order’ 작성하세요. (5)

 

EXEC info_order(101)

실행 결과

order_id, order_date, order_mode, product_name

 

 

CREATE OR REPLACE PROCEDURE info_order

  (

    p_cust_id orders.customer_id%type

   )

IS

     l_ord orders%ROWTYPE;

     l_pn product_information.product_name%type;

  CURSOR ord_cur IS

   SELECT o.order_id, order_date,  order_mode, product_name

   FROM orders o

   JOIN order_items i ON o.order_id = i.order_id

   JOIN product_information p ON i.product_id = p.product_id

   WHERE customer_id = p_cust_id;

   BEGIN

     OPEN ord_cur;

     LOOP

     FETCH ord_cur INTO l_ord.order_id, l_ord.order_date, l_ord.order_mode, l_pn;

     EXIT WHEN ord_cur%NOTFOUND;

     DBMS_OUTPUT.PUT_LINE(l_ord.order_id||' '||l_ord.order_date||' '||l_ord.order_mode||' '||l_pn);

     END LOOP;

  CLOSE ord_cur;

END;

 

SET SERVEROUTPUT ON;

EXEC info_order(101);

 

결과 : 2447 00/07/27 23:59:10.223344 direct RAM - 16 MB

2430 99/10/02 21:18:36.663332 direct SDRAM - 16 MB

2413 00/03/30 04:34:04.525934 direct MB - S500

2447 00/07/27 23:59:10.223344 direct MB - S600

2413 00/03/30 04:34:04.525934 direct Sound Card STD

2447 00/07/27 23:59:10.223344 direct Video Card /E32

2413 00/03/30 04:34:04.525934 direct KB E/EN

2458 99/08/17 06:34:12.234359 direct Mouse C/E

2413 00/03/30 04:34:04.525934 direct Mouse C/E

2447 00/07/27 23:59:10.223344 direct CDW 20/48/I

2447 00/07/27 23:59:10.223344 direct DVD 12x

2447 00/07/27 23:59:10.223344 direct Battery - NiHM

2447 00/07/27 23:59:10.223344 direct PS 12V /P

2458 99/08/17 06:34:12.234359 direct PS 220V /D

2413 00/03/30 04:34:04.525934 direct Monitor Hinge - HD

2430 99/10/02 21:18:36.663332 direct Plasma Monitor 10/LE/VGA

2447 00/07/27 23:59:10.223344 direct Inkjet B/6

2458 99/08/17 06:34:12.234359 direct LaserPro 600/6/BW

2413 00/03/30 04:34:04.525934 direct LaserPro 600/6/BW

2430 99/10/02 21:18:36.663332 direct HD 10GB /R

2447 00/07/27 23:59:10.223344 direct PS 220V /L

2458 99/08/17 06:34:12.234359 direct Screws <B.28.S>

2458 99/08/17 06:34:12.234359 direct Screws <B.32.S>

2430 99/10/02 21:18:36.663332 direct C for SPNIX4.0 - Sys

2430 99/10/02 21:18:36.663332 direct Web Browser - SB/S 4.0

2458 99/08/17 06:34:12.234359 direct Manual - Vision Net6.3/US

2413 00/03/30 04:34:04.525934 direct Manual - Vision Net6.3/US

 

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/87 관련글 쓰기

2007/06/24 23:57

Oracle 달력 쿼리

출처 : http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1010&seq=69&page=1&position=1


년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들어 보자.
쿼리는 아래와 같다. (2000년 01월이 주어졌을 경우)


SELECT   MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
         MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
         MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
         MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
         MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
         MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
         MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
    FROM (SELECT     base_mon + LEVEL - 1 days,
                         (  TRUNC (base_mon + LEVEL - 1, 'd')
                          - TRUNC (TRUNC (base_mon + LEVEL - 1, 'y'), 'd')
                         ) / 7 + 1 week_grp
                FROM (SELECT TO_DATE ('200001', 'yyyymm') base_mon
                        FROM DUAL)
          CONNECT BY base_mon + LEVEL - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp



connect by level 절을 사용하지 못하는 버전일 경우에는, 아래와 같이 dict 테이블을 이용한다.
아래 예는 위의 쿼리 와는 다르게 오늘로부터 몇달 후인지를 나타내는 변수 :n에 따라 달력을 생성한다.
(:n=-1 일 경우 지난달, 0은 이번달, 1은 다음달, 2는 다다음달,...)


SELECT   MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
         MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
         MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
         MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
         MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
         MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
         MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
    FROM (SELECT base_mon + ROWNUM - 1 days,
                     (  TRUNC (base_mon + ROWNUM - 1, 'd')
                      - TRUNC (TRUNC (base_mon + ROWNUM - 1, 'y'), 'd')
                     )
                   / 7
                 + 1 week_grp
            FROM (SELECT TRUNC (ADD_MONTHS (SYSDATE, :n), 'mm') base_mon
                    FROM DUAL), dict
           WHERE base_mon + ROWNUM - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/81 관련글 쓰기

2007/05/03 08:13

MSSQL NOT IN을 이용한 특정 위치의 글 검색

select top 20  *
from  authors
where au_id not in (select top 10 au_id from authors  order by au_id)
order by au_id



데이터 상단의 20개 중에 처음 10개를 제외한 11~20개의 데이터를 가져온다.

MySQL 사용할 땐 limit 구문을 이용해서 limit 10, 10 이런식으로 쉽게 처리를 했는데..

이런 부분에선 약간 불편한 듯 하다..

대신 그 만큼 강한 기능 때문에 사용하지 않을까?
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/10 관련글 쓰기