'오라클 답변모음'에 해당되는 글 1건

  1. 2018.04.09 지식인 답변모음 - 데이터베이스 카테고리_4
2018. 4. 9. 11:01

지식인 답변모음 3번에서 14.07.14일까지 했었고, 이후의 답변 추려봤습니다.


------------------------------------------------------------------------------------------------------------------------


질문 제목 : 쿼리 결과값 중 50단어 이상인 내용만 조회 하려면 어떻게 해야 하나요?

내용 : 안녕하세요. 쿼리 초짜 입니당

쿼리 결과값 중 50단어 이상인 내용만 조회 하려면 어떻게 해야 하나요? 급히 써야 할데가 있어서 요청 드립니다.


답변 : where 절에 50단어인지 판별하기 위한 함수를 사용하면됩니다.

select * from tableA where length(50단어 이상인지 판별할 컬럼명) >= 50; 이런식으로 작성하면 됩니다.

오라클 기준이며 mssql에서도 같은 함수가 없을경우 문자열의 길이를 리턴해주는 함수를 찾아 대체하면 되겠습니다.


* 사용하는 dbms에서 제공하는 함수들을 미리 알아두는것도 SQL 작성에 도움이 됩니다.


------------------------------------------------------------------------------------------------------------------------


질문 제목 : SQL문에서 partition by 질문드려요..

내용 : 

회사명구분기간판매량
테스트1해외1월32
테스트2국내3월11
테스트3국내4월44
테스트4해외5월22

회사명구분1월3월4월5월
테스트1해외32   
테스트2국내 11  
테스트3국내  44 
테스트4해외   22

첫번째는 테이블에 들어있는 값이구요... 두번째처럼 나오게 하려면 partition by를 써야 할까요..

아무리 해도 잘 안되서요...도와주세요..ㅠㅠ


답변 : select 회사명, 구분, case when 기간 = '1월' then 판매량 end as 1월, case when 기간 = '3월' then 판매량 end as 3월

, case when 기간 = '4월' then 판매량 end as 4월, case when 기간 = '5월' then 판매량 end as 5월 from 테이블명


partition by 는 그룹별로 지정해주는 함수이며 윈도우 함수와 함께 사용됩니다. ex)  select max(월급) over(partition by 부서 order by 월급) from 월급테이블 이라고 작성하면 부서별 최고 월급을 받는 데이터가 월급순으로 정렬되어 나옵니다.

decode 함수를 사용해도 위와 같은 결과가 가능하나 오라클에서만 사용되므로 case when으로 작성하였습니다.


* 윈도우 함수 역시 유용한 기능을 제공하는 함수이므로 기본적인 사용법이나 어떤 것들이 있는지 알아두는게 좋습니다.


------------------------------------------------------------------------------------------------------------------------


질문 제목 : 오라클 db 기본키(pk) 데이터삽입질문이요! 

내용 : 데이터삽입시 201401, 201402, 201403처럼 일정하게 +1씩해서 기본키를 삽입하려는데 혹시 자동으로계산되게할수잇나요 응용법이궁금합니다.


답변 : insert into 테이블명 (기본키컬럼, 이름, 성별) values ((select max(기본키컬럼) + 1 from 테이블명), '홍길동', '남자');


* 정말 간단하게 답했네요. 최대값에 +1을 더한값으로 입력하는 방식을 취하고 있습니다. 이 방법 외에도 트리거에 대해서도 알아두면 좋습니다.


--------------------------------------------------------------------------------------------------


이상으로 2014.07월 까지의 답변이었고, 꾸준히 이어나가겠습니다.  데이터베이스와 관련해서 간단한 질문정도는 언제든지 환영하며, 제가 모르더라도 여러 루트로 알아보고, 배운뒤에 답변을 도와드리도록 하겠습니다. 혹 부족한 답변이 보인다면 언제든 조언 및 지적 환영합니다.


Posted by 타이니스타