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

자주 사용하는 기능인데 귀찮아서 -_ -;;
강좌로 올리진 않았는데..
생각난 김에 잠깐 캡쳐를 해서 샥샥~ 블로깅 합니다.
뭐 하다보면 StringBuilder 일 수 있고 아닐 수도 있지만
유사한 방법으로 활용하시면 될 듯 해요 ㅎㅎ
일단 핵심인 Editplus가 있어야 겠고요.
먼저 다음과 같은 쿼리문을 스트링 빌더(StringBuilder)로 감싸야 한다고 생각해보죠.
뭐 3줄 이니 그냥해도 되지만, 줄이 많은 경우를 가정해서 하는 것이라고 생각해주세요.
먼저 '바꾸기 (Ctrl + H)'를 눌러서 바꾸기 창을 띄우고요.
다음처럼 따라서 누르면 위쪽에 '찾을 말' 부분에 추가가 되거든요.
먼저 한 줄의 시작 부분에
그 뒤부분에 나오는 전체 문자들을 전부 잡을 것이기 때문에
우리가 필요로 하는 부분을 테그로 감싸야 합니다. () 모양인 것이 태그죠.
이제 모든 문자열을 잡습니다. '.' 점(dot)이 그 것을 나타냅니다.
어떤 문자열이든 한 글자 이상 나오면, 그 것을 잡는다는 말이고요.
이제 줄의 끝까지를 잡는다는 말이에요.
결과적으로 한줄의 어떤 문자열이 오든 잡는다는 말이죠. 대신 한 글자라도 있어야 하고요.
그렇게 적용한 후에 아래 '바꿀 말' 부분을 작성해줍니다.
위에서 '찾을 말' 에서 태그 () 로 잡은 안의 문자열 들은 \1 '바꿀 말'의 \1로 변환 되는 거에요.
기존에 있던 글자를 () 괄호 안의 .+ 가 잡은 모든 글자들이 아래처럼 감싸지게 됩니다!!
sb.AppendLine(" 기존의 글 ");
위의 형식으로 잡는다는 말이 되는겁니다. 간단하죠?
이제 '모두 바꾸기' 버튼을 누르면,
다음과 같이 한번에 변환 되는 겁니다.
아주 간단한 팁이지만 - _-;;
아직도 노가다로 코딩하시는 분들을 위해....
아주 약간이나마 팁이 되기를... ㅋㅋ
'.NET > C#' 카테고리의 다른 글
| Different with ArrayList, List<T> – Boxing, None Boxing (0) | 2009/03/10 |
|---|---|
| 정규표현식(Regular Expression) Href URL 캡쳐(Capture) (0) | 2009/03/02 |
| 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 (4) | 2009/02/26 |
| [Hoons C# 스터디 2009 1기] 3주차 세미나 / 발표 내용 정리 (2) | 2009/02/25 |
| Use WebBrowser and shdocvw.dll for POST Data sending (0) | 2009/02/16 |
| C# - Excel Sheet to DataTable (2) | 2009/01/14 |
Trackback : http://i-ruru.com/trackback/411
-
Subject decoder의 생각
2009/02/26 23:25
여러줄을 StringBuilder로 감싸기 이거 요긴하게 써먹을 수 있겠구만. :)
-
Subject sunyruru의 생각
2009/02/27 15:50
Ruru' Programming :) :: 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 아주 가끔씩은 쓸 일이 있더라구요 ㅎㅎ
-
이경배 2009/12/16 10:20
오... 좋은 글 잘 읽었습니다.
http://blog.naver.com/gaebit/120093613178
에 제가 만든 프로그램이 있습니다.
앞뒤로 따옴표 붙혀주는 프로그램인데요. 스트링 빌더 말고 그냥 스트링에 사용하실때 유용하실껍니다.
스트링빌더나 다른 언어에서 쓸 수 있게 앞뒤에 사용자가 원하는 문자를 붙힐 수 있도록 수정해야겠네요^^;
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만 제공되는 것으로 알았다가 새로운 사실에 조금 놀랍네요.
아직 자세한 내용은 확인해보지 않아서 확실히는 모르겠지만..
위에 목록에 제공되는 것들이 많이 보이니 이용할 가치가 크지 않을까 생각합니다.
'.NET > C#' 카테고리의 다른 글
| 상속받은 클래스에서 Override, new, 로컬메소드의 차이 예제 (0) | 2008/04/14 |
|---|---|
| .NET C# Base64 Decode (0) | 2008/04/12 |
| Charlie Calvert's Community Blog : Link to Everything: A List of LINQ Providers (0) | 2008/04/03 |
| 파일 사이즈 변환 (0) | 2008/04/02 |
| C# XML Document 생성 애드인(Add-in) (1) | 2007/12/19 |
| C#에서 Hex 값을 Int로 또는 그 반대로 (0) | 2007/12/18 |
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;
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
CLOSE ord_cur;
END;
SET SERVEROUTPUT ON;
EXEC info_order(101);
결과 : 2447
2430
2413
2447
2413
2447
2413
2458
2413
2447
2447
2447
2447
2458
2413
2430
2447
2458
2413
2430
2447
2458
2458
2430
2430
2458
2413
'System > SQL' 카테고리의 다른 글
| MSSQL 쿼리로 테이블 목록보는 방법 (1) | 2008/06/20 |
|---|---|
| MS SQL Server 2008 CTP July (1) | 2007/11/16 |
| ORACLE SQL 2차 평가 시험 문제 (0) | 2007/06/29 |
| Oracle에서 테이블의 상세를 보고싶은경우 (1) | 2007/06/25 |
| Oracle에서 사용하는 계정의 암호 변경 (0) | 2007/06/25 |
| Oracle 달력 쿼리 (0) | 2007/06/24 |
년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들어 보자.
쿼리는 아래와 같다. (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
'System > SQL' 카테고리의 다른 글
| Oracle에서 테이블의 상세를 보고싶은경우 (1) | 2007/06/25 |
|---|---|
| Oracle에서 사용하는 계정의 암호 변경 (0) | 2007/06/25 |
| Oracle 달력 쿼리 (0) | 2007/06/24 |
| Oracle 분석함수 (0) | 2007/06/24 |
| Oracle 10g의 HR 계정을 이용한 예제 (0) | 2007/06/21 |
| Oracle의 버퍼에 기록되어있던 이전 명령을 다시 실행 (0) | 2007/06/21 |
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 이런식으로 쉽게 처리를 했는데..
이런 부분에선 약간 불편한 듯 하다..
대신 그 만큼 강한 기능 때문에 사용하지 않을까?
'System > SQL' 카테고리의 다른 글
| Oracle 달력 쿼리 (0) | 2007/06/24 |
|---|---|
| Oracle 분석함수 (0) | 2007/06/24 |
| Oracle 10g의 HR 계정을 이용한 예제 (0) | 2007/06/21 |
| Oracle의 버퍼에 기록되어있던 이전 명령을 다시 실행 (0) | 2007/06/21 |
| MSSQL NOT IN을 이용한 특정 위치의 글 검색 (0) | 2007/05/03 |
| MS-SQL 외부 연결을 위해 필요한 DLL 파일 (0) | 2007/04/29 |
Prev




