안녕하세요! loop문에서 if문 해석이 잘 되지 않아서 질문을 하려고 글을 올립니다.
우선 테이블은 다음과 같습니다.
brewery_id | brewery_name | product_id | product_name |
518 | balthazar | 5310 | a |
518 | balthazar | 5430 | b |
518 | balthazar | 6520 | c |
523 | happy | 6600 | d |
523 | happy | 7790 | e |
523 | happy | 7870 | f |
536 | brewing | 4040 | g |
536 | brewing | 4160 | h |
536 | brewing | 4280 | i |
536 | brewing | 7950 | j |
이 테이블에서 결과적으로 brewery_name이 같은 것끼리 product_name넣어서 product_list를 출력하는 쿼리에서(예를들면 brewery_name이 happy라면 product_list안에 d,e,f 출력)
if else문을 제가 이해를 잘 하고 있는건지 모르겠습니다.
create or replace type name_coll_type as table of varchar2(80 byte); create or replace function name_coll_type_to_varchar2( p_name_coll in name_coll_type ,p_delimiter in varchar2 default null) return varchar2 is v_name_string varchar2(4000 char); begin for idx in p_name_coll.first..p_name_coll.last loop if idx = p_name_coll.first then v_name_string := p_name_coll(idx); else v_name_string := v_name_string || p_delimiter || p_name_coll(idx); end if; end loop; return v_name_string; end name_coll_type_to_varchar2;
if idx가 하한값(시작값) 518이면 518에 해당하는 상품명을 출력하라 이렇게 이해를 했고
else 그렇지 않을 경우에는 아예 어떻게 처리해야 하는지를 모르겠습니다.