전체 글178 필드값을 레코드값으로 변경해보자. 아래와 같이 T_TEST테이블의 조회되는 데이터가 있다. seq winner ---- ----- 1 Y 1 N 2 Y 2 Y ... 위와 같을 경우 SEQ코드별로 winner의 코드값이 'Y'인 COUNT 값과 'N'인 COUNT 값이 필요할경우 아래와 같이 한 레코드 형식으로 쿼리를 날려보자. SELECT seq, NVL(SUM (DECODE (winner, 'Y', 1)),0) Y, NVL(SUM (DECODE (winner, 'N', 1)),0) N FROM t_test WHERE seq > 0 GROUP BY seq 결과는 아래와 같다. SEQ Y N ----- -- -- 1 1 1 2 2 0 ..... 2007. 10. 13. 중복 데이터 제거(partition by) 데이터 조회시 중복된 데이터를 걸러내기 위한 쿼리중 한가지 방법 중에 partition by 방법이다. T_MEM 테이블과 T_MEM_MORE 테이블에 각각 USERID란 컬럼이 PK, FK로 잡혀있고 T_MEM 테이블 기준으로 중복 제거를 하려면 아래와 같다. SELECT a.userid, row_number() over(partition by b.userid order by b.userid) overlap FROM t_mem a, t_mem_more b WHERE a.userid = b.userid 그러면 데이터는 아래와 같다 USERID OVERLAP test 1 test 2 test_1 1 test_2 1 test_2 2 .... 대충 이런식이다.-_-; 저기에서 overlap =1 로 검출하면 .. 2007. 10. 12. 특수문자 & 의 다른 표현 보통 & 이녀석은 & 로 캐스팅해서 처리하곤 했는데 이 마저도 안되는 상황이 생겨버렷다..-_-;; 일단 급하게 & 이 문자로 대체했더니 해결됐지만 특수문자 처리는 항상 문제지.. & 와 & 차이가 정확히 뭔지는 알수없으나 표시는 거의 동일하다..;; 2007. 8. 28. Oracle 랜덤하게 정보 추출 종종 오라클에서 랜덤하게 정보를 추출할일이 생기는데 사용되는 간단한 쿼리다. select * from (select * from TEST_TABLE order by dbms_random.value) where rownum 2007. 8. 10. 이전 1 ··· 22 23 24 25 26 27 28 ··· 45 다음