decode(a, b, c, d)

a가 b 이면 c이고 아니면 d이다.


예제 쿼리로 보면.....

select decode(sum(c1)+sum(c2),0,null,sum(c1)+sum(c2)) from test

sum(c1)+sum(c2) 요놈이 0 이면
null 을 뽑고 아니면 sum(c1)+sum(c2) 요걸 뽑고....뭐...단순 예제다보니....-0-;;;
2007/09/01 23:15 2007/09/01 23:15
TAG ,
Switch(expr-1, value-1[, expr-2, value-2 … [, expr-n,value-n]])

IIf(expr, truepart, falsepart)


그나저나 왜 MDB에도 컨버트나 캐스트 함수가 분명히 도움말에서도 존재하고 사용이 가능하다고 나오는데
정의되지 않은 함수라며 오류가 나징..ㅜㅜ
왜 사용할수가 없는거야 아우~ 다른방법이라도 좀 어디 아시는분 알려주세요~~~
2007/09/01 23:14 2007/09/01 23:14
TAG , ,

DB2에의 타입 캐스팅

데이터베이스/DB2UDB 2007/09/01 23:14 posted by zekill
mssql에서는 convert, cast를 이용했었다

db2에서는 그냥 integer(value) 하니까 되더라
2007/09/01 23:14 2007/09/01 23:14
http://kr.blog.yahoo.com/zeronullkr 


외부키에 인덱스가 필요하다.

-dml 작업시에 락킹문제
-조인시 연결고리 성능향상


우선 정규화가 안되어 있다면 튜닝도 소용 없는 짓이고.(모델링이 중요하다는 말) 기본적으로 where 분석을 해야하고. 분포도가 적은 필드 먼저 인덱스를 타야겠지.

여러 테이블조인시에 도 PK만으로도 연결고리는 적절하나. 원하는 성능을 내기 위해서 인덱스를 따로 생성해주고 힌트를 이용해야 하기도 하고.

또 운반단위의 개념 등등 여러가지 DBMS의 지식을 알아야지 혹사 안시키고 원하는 것만 빠른 속도로 딱딱 뽑아 내는거지.

또 간단한 팁을 하나 더 적자면

문자형 필드인데...  state=10  이렇게 한다면 형변환이 일어나게 되지.
반대로 where 함수(state)=10 이런 형태라든가

여하튼.. 쉽게 글로 설명하기는 힘들겠구나.
언제 시간되면 나도 잘 모르니 얘기를 나눠보자꾸나
2007/09/01 23:13 2007/09/01 23:13

JOIN 속도차이~~

데이터베이스/MySQL 2007/09/01 23:11 posted by zekill
뭐 상황에 따라 다르겠지만......글고 굳이 mysql만이 아닌...

1. select * from a left join b on a.seq=b.seq

2. select * from a, b where a.seq=b.seq

둘다 같은 조인 쿼리이지만 적은양의 데이터에서 테스트를 했을때
1번은 0.0050 ~ 0.0060 정도의 속도가 나왔고
2번은 0.0008 ~ 0.0011 정도의 속도가 나왓따.....

대용량에서는 테스트를 못해봤기에 결론을 내릴순 없지만.....그냥 이렇다는 얘기다..-0-//
2007/09/01 23:11 2007/09/01 23:11
TAG , ,