'java' 카테고리의 다른 글
java 예외(exception) 처리에 대한 괜찮은 글.. (0) | 2014.06.26 |
---|---|
lamda.. (업데이트중) (0) | 2014.05.21 |
java 현재시간과 시간 지연 (0) | 2014.03.18 |
ResultSet rowcount 구하기 (0) | 2014.03.14 |
java 오늘일자 string format YYYYMMDD (2) | 2014.03.12 |
java 예외(exception) 처리에 대한 괜찮은 글.. (0) | 2014.06.26 |
---|---|
lamda.. (업데이트중) (0) | 2014.05.21 |
java 현재시간과 시간 지연 (0) | 2014.03.18 |
ResultSet rowcount 구하기 (0) | 2014.03.14 |
java 오늘일자 string format YYYYMMDD (2) | 2014.03.12 |
오라클에서 정렬시 NULL값은 마지막에 정렬된다..
NULL값을 처음에 정렬되게 하려면..
ORDER BY 컬럼 NULLS FIRST
WITH T AS (
SELECT 2500 AS COL1 FROM DUAL UNION ALL
SELECT NULL AS COL1 FROM DUAL UNION ALL
SELECT 1000 AS COL1 FROM DUAL UNION ALL
SELECT 23 AS COL1 FROM DUAL UNION ALL
SELECT NULL AS COL1 FROM DUAL
)
SELECT * FROM T
ORDER BY COL1
결과는
23
1000
2500
NULL
NULL
ORDER BY 컬럼 NULLS FIRST
SELECT * FROM T
ORDER BY COL1 NULLS FIRST
결과는
NULL
NULL
23
1000
2500
NULLS LAST 를 쓰면.. NULL을 마지막에 정렬시킨다..
안쓴 경우와 동일한 결과가 나온다..
sqlite에서 rownum기능.. LIMIT (0) | 2014.07.31 |
---|---|
yyyymmdd를 종종 yyyy-mm-dd로 표현해야 할때.. (0) | 2014.07.17 |
group by에서 문자열 합치기... (3) | 2014.03.31 |
오라클 년별, 월별 주차 계산... (0) | 2014.03.21 |
오라클에서 join을 이용한 update문.. (0) | 2014.03.20 |
아래내용은 구루비 커뮤니티(오라클클럽) 에서 퍼옴..
http://www.gurubee.net/article/55512
오라클 버전별로 버전이다..
WITH T(TYPE, NAME, CODE) AS
(
SELECT '과일', '사과', '0' FROM dual
UNION ALL SELECT '과일', '레몬', '1' FROM dual
UNION ALL SELECT '과일', '포도', '2' FROM dual
UNION ALL SELECT '과일', '참외', '3' FROM dual
UNION ALL SELECT '채소', '오이', '0' FROM dual
UNION ALL SELECT '채소', '당근', '1' FROM dual
UNION ALL SELECT '채소', '호박', '2' FROM dual
)
SELECT type
, SUBSTR(XMLAGG(XMLELEMENT(X, ',', NAME) ORDER BY CODE).EXTRACT('//text()'), 2) NAME_9I
, WM_CONCAT(NAME) NAME_10G
, LISTAGG(NAME, ',') WITHIN GROUP(ORDER BY CODE) NAME_11G
FROM t
GROUP BY type
ORDER BY type
;
결과는.. 다음과 같다..
참고로..
MySql
SELECT type
, group_concat(name ORDER BY code) name_MySQL
FROM t
GROUP BY type
ORDER BY type
MsSQL
SELECT type
, STUFF((SELECT ',' + name
FROM t
WHERE type = a.type
ORDER BY code
FOR XML PATH('')
), 1, 1, '') name_MSSQL
FROM t a
GROUP BY type
ORDER BY type
yyyymmdd를 종종 yyyy-mm-dd로 표현해야 할때.. (0) | 2014.07.17 |
---|---|
NULL값 정렬 order by nulls first, last (0) | 2014.04.01 |
오라클 년별, 월별 주차 계산... (0) | 2014.03.21 |
오라클에서 join을 이용한 update문.. (0) | 2014.03.20 |
SQL문에서 like 검색.. escape (0) | 2014.03.19 |
gzip 사용법
>압축하기
#gzip 파일명
>압축풀기
#gzip 파일명.gz
>압축하고 원본파일 덮어쓰기
#gzip -f 파일명
>도움말보기
#gzip -h
도움말
usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
-c --stdout write on standard output, keep original files unchanged
-d --decompress decompress
-f --force force overwrite of output file and compress links
-h --help give this help
-l --list list compressed file contents
-L --license display software license
-n --no-name do not save or restore the original name and time stamp
-N --name save or restore the original name and time stamp
-q --quiet suppress all warnings
-r --recursive operate recursively on directories
-S .suf --suffix .suf use suffix .suf on compressed files
-t --test test compressed file integrity
-v --verbose verbose mode
-V --version display version number
-1 --fast compress faster
-9 --best compress better
traceroute 명령어 (0) | 2014.12.10 |
---|---|
ssh, sftp 명령어.. (0) | 2014.06.11 |
hp unix, ibm unix 한글 언어 확인 (0) | 2014.03.24 |
crontab 설정 (0) | 2014.03.13 |
ftp shell 프로그래밍.. (0) | 2014.02.11 |
log를 찍을때 개발은 한글이 깨지고 운영은 한글이 잘 된다..
운영은 ibm unix 개발은 hp-unix
한글설정 확인을 해보는 방법..
개발서버를 보니 한글이 설정이 안되어 있다...
# locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=
지원한글 캐릭터셋 확인
# locale -a | grep ko
ko_KR.eucKR
ko_KR.utf8
캐럭터 설정
# export LANG=ko_KR.eucKR
# locale
LANG=ko_KR.eucKR
LC_CTYPE="ko_KR.eucKR"
LC_COLLATE="ko_KR.eucKR"
LC_MONETARY="ko_KR.eucKR"
LC_NUMERIC="ko_KR.eucKR"
LC_TIME="ko_KR.eucKR"
LC_MESSAGES="ko_KR.eucKR"
LC_ALL=
이렇게 설정하니.. 로그 찍을때 한글이 깨지지 않는다.. ㅎㅎ
ssh, sftp 명령어.. (0) | 2014.06.11 |
---|---|
gzip 사용법 (0) | 2014.03.27 |
crontab 설정 (0) | 2014.03.13 |
ftp shell 프로그래밍.. (0) | 2014.02.11 |
유용한 Unix 명령어 (0) | 2014.01.23 |
날짜가 몇주인주 계산해야 하는 경우가 있다.
그때 다음과 같이 구할수 있따..
SELECT TO_CHAR(TO_DATE('20131231'),'WW') FROM DUAL;
-> 53
SELECT TO_CHAR(TO_DATE('20131231'),'IW') FROM DUAL;
-> 01
WW : 해당해의 1일부터 7일단위로 끊어서 주차를 생성
IW : 날짜 해당한 주가 하루라도 다음해인 경우에는 그해의 첫주가 됨.
SELECT TO_CHAR(TO_DATE('20140115'),'W') FROM DUAL;
-> 3
SELECT TO_CHAR(TO_DATE('20140215'),'W') FROM DUAL;
-> 4
W : 해당월의 주차를 구함
NULL값 정렬 order by nulls first, last (0) | 2014.04.01 |
---|---|
group by에서 문자열 합치기... (3) | 2014.03.31 |
오라클에서 join을 이용한 update문.. (0) | 2014.03.20 |
SQL문에서 like 검색.. escape (0) | 2014.03.19 |
매월 첫번주 월요일 구하기... (0) | 2014.03.17 |
Join문을 이용해서 update시.. 헷깔리는 경우가 많다..
테이블1 TAB1 ( KEY, COL1)
테이블2 TAB1 ( KEY, COL2)
테이블1의 컬럼 COL1에 테이블1과 테이블2의 KEY값이 동일한 경우 COL2를 업데이트 하는 경우.
JOIN을 이용하지 않는 경우..
UPDATE TAB1 A
SET COL1 = ( SELECT COL2
FROM TAB2
WHERE KEY = A.KEY );
JOIN을 이용하는 경우에는
/*+ BYPASS_UJVC */ 라는 힌트를 이용해서 UPDATE한다.
UPDATE /*+ BYPASS_UJVC */
(
SELECT A.COL1 COL1
, B.COL2 COL2
FROM TAB1 A
, TAB2 B
WHERE A.KEY = B.KEY
)
SET COL1 = COL2
INNER JOIN 한 후에, 수정할 필드 COL1과 대상 필드 COL2를 조회해서 UPDATE한다.
OUTER JOIN한 후에, UPDATE를 해야 하는 경우에는
WHERE A.KEY = B.KEY(+)
OUTER JOIN을 해서 UPDATE가 가능하다.
SQL Server에서는.. join update가 좀더 쉽다.. 아마도.. ^^
UPDATE TAB1
SET COL1 = B.COL2
FROM TAB1 A INNER JOIN TAB2 B ON A.KEY = B.KEY
group by에서 문자열 합치기... (3) | 2014.03.31 |
---|---|
오라클 년별, 월별 주차 계산... (0) | 2014.03.21 |
SQL문에서 like 검색.. escape (0) | 2014.03.19 |
매월 첫번주 월요일 구하기... (0) | 2014.03.17 |
오라클 TRUNC 함수.. (0) | 2014.03.17 |
SQL문에서 like를 이용한 검색..
오라클 WITH문을 이용해서 테스트 해보겠다..
WITH T AS (
SELECT '324324' COL1, 'ASDDD' COL2 FROM DUAL UNION ALL
SELECT 'AB234C' COL1, 'AG_%%D' COL2 FROM DUAL UNION ALL
SELECT 'A3424B' COL1, 'AS_DFD' COL2 FROM DUAL UNION ALL
SELECT 'AB234C' COL1, 'AS_DDD' COL2 FROM DUAL UNION ALL
SELECT 'A3211C' COL1, 'AS_DAZ' COL2 FROM DUAL UNION ALL
SELECT 'AB111C' COL1, 'AG_D%F' COL2 FROM DUAL
)
SELECT * FROM T
WHERE COL1 LIKE 'AB%'
컬럼 COL1 앞 두문자가 AB인 Row를 검색하는 조건이다..
결과는..
AB234C AG_%%D
AB234C AS_DDD
AB111C AG_D%F
컬럼 COL1 뒤 문자가 4C로 끝나는 Row를 검색하는 조건
SELECT * FROM T
WHERE COL1 LIKE '%4C'
결과는
AB234C AG_%%D
AB234C AS_DDD
컬럼 COL1 두번째 문자가 B로 끝나는 Row를 검색하는 조건
_ : 는 문자 하나를 의미한다.
SELECT * FROM T
WHERE WHERE COL1 LIKE '_B%'
결과는
AB234C AG_%%D
AB234C AS_DDD
AB111C AG_D%F
그런데 COL2 값같이 %, _ 포함되어 있는 컬럼을 검색해야 한다면.. ESCAPE 문을 써주면 된다.
컬럼 COL2 앞문자가 AG_로 끝나는 Row를 검색하는 조건은
SELECT * FROM T
WHERE COL2 LIKE 'AG\_%' ESCAPE '\'
결과는
AB234C AG_%%D
AB111C AG_D%F
ESCAPE 옵션은 백슬래쉬(\)문자를 이스케이프문자로 식별하게 해서 _를 조건으로 인식하게 한다.
오라클 년별, 월별 주차 계산... (0) | 2014.03.21 |
---|---|
오라클에서 join을 이용한 update문.. (0) | 2014.03.20 |
매월 첫번주 월요일 구하기... (0) | 2014.03.17 |
오라클 TRUNC 함수.. (0) | 2014.03.17 |
oracle 분석함수 RANK, DENSE_RANK, ROW_NUMBER 차이.. (0) | 2014.03.17 |
java로 현재 시간 구할려면..
System.currentTimeMillis 구한후에..
SimpleDateFormat 으로 원하는 포맷으로 출력하면 된다..
그리고 시간 지연 시키기 위해서는..
Robot이라는 클래스를 이용해서 지연 시킬 수 있다..
TimeDelayTest.java
import java.awt.AWTException;
import java.awt.Robot;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeDelayTest {
public static void main(String arg[]) {
SimpleDateFormat dayTime = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
long start = System.currentTimeMillis() ;
System.out.println("start=" + dayTime.format(new Date(start)));
//5초 지연
DelayTime(5);
long end = System.currentTimeMillis();
System.out.println("end =" + dayTime.format(new Date(end)));
System.out.println((end-start)/1000 +"초지연");
}
public static void DelayTime(int delaySec) {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
}
robot.delay(delaySec * 1000);
}
}
결과
start=2014-50-18 04:50:17
end =2014-50-18 04:50:22
5초지연
lamda.. (업데이트중) (0) | 2014.05.21 |
---|---|
String, StringBuffer, StringBuilder 차이점.. (0) | 2014.05.14 |
ResultSet rowcount 구하기 (0) | 2014.03.14 |
java 오늘일자 string format YYYYMMDD (2) | 2014.03.12 |
ORA-01861: literal does not match format string 오류발생.. (0) | 2014.02.28 |
매월 첫번째 월요일에만 작업이 돌아야 하는 경우가 생겼다..
오라클 SQL에서 매월 첫번째 월요일을 구하는 방법을 알아보자..
일단
TRUNC(date,char) SYSDATE를 년,월,날 기준으로 잘라버린다..
NEXT_DAY(date,char) 함수는 date로부터 그 다음주 char로 명시한 요일을 출력한다.
이 두함수를 이용해서 날을 구해보았다..
SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL
UNION ALL
SELECT TRUNC(SYSDATE,'MONTH')-1 FROM DUAL
UNION ALL
SELECT NEXT_DAY((TRUNC(SYSDATE,'MONTH')-1),'월') FROM DUAL
결과는..
2014/03/01 00:00:00
2014/02/28 00:00:00
2014/03/03 00:00:00
TRUNC함수를 이용해서 당월 1일을 구하고
-1을 해서 전월 마지막 날을 구한후에
NEXT_DAY함수를 이용해서 다음주 월요일을 구하면 당월 첫번째 월요일을 구할 수 있다.
오라클에서 join을 이용한 update문.. (0) | 2014.03.20 |
---|---|
SQL문에서 like 검색.. escape (0) | 2014.03.19 |
오라클 TRUNC 함수.. (0) | 2014.03.17 |
oracle 분석함수 RANK, DENSE_RANK, ROW_NUMBER 차이.. (0) | 2014.03.17 |
오라클 그룹 함수 over, partition by (2) | 2014.03.14 |