2013-04-17

Javascript] Javascript 에서의 replace


자바스크립트에서  replace는 query, java 의 replace 와 달리 처음 등장한 딱 한개만 바꿔준다.

아래와 같이 실행하면,

str = "aaabbbaaa";
result = str.replace("aaa", "ccc");

result는 내가 의도한 "cccbbbccc"가 아닌 "cccbbbaaa"가 나온다.


따라서, 원하는 문자열을 모두 바꾸어 주려면 정규식 표현을 사용해야 한다.

str = "aaabbbaaa";
result = str.replace(/a/g, "c");


위의 /a /g 의 의미는  아래와 같다.
    /a/ : str 변수의 값 중 'a'라는 문자를
    g (완전일치(발생할 모든 pattern에 대한 전역 검색)) str 의 전체 문자열에 대해, 'c'로 변환.

그 외에 다른  플래그는 아래와 같다.

i : 대/소문자 무시, gi : 대/소문자 무시하고 완전 일치

2013-04-03

DB] oracle 에 있는 sign() 의 기능


오라클에 있는  SIGN이라는 함수의 기능은 원하는 결과값(?!)이 양수 / 음수 / 0 이냐에 따라서 값을 반환해주는 함수.

예)
SELECT SIGN(1+1) a, SIGN(1-1)  b, SIGN(1-5) c
FROM DUAL;

결과
---------------------------

a | b | c
==========
1 | 0 | -1


추가적인 예)
필드의 값이 100 이상인 것의 합과 미만인 것의 합을 구하는 쿼리.
출처 : http://ssiso.net/cafe/club/club1/board1/content.php?board_code=oracle%7Coratip&idx=31597&club=oracle


SELECT SUM(CASE SIGN(A-100)
                         WHEN 0 THEN A
                         WHEN 1 THEN A
                         ELSE 0
                     END)                      AS OVER100,
             SUM(CASE SIGN(A-100)
                         WHEN -1 THEN A
                         ELSE 0
                     END)                      AS DOWN100
    FROM DUAL;