마농님 답변 감사드립니다!
음.. 좀 모호했나요? ㅠㅠ
일단 대충 돌아가는걸 설명드리자면 저 a.hamburger_name 에 빅맥을 입력하면 p1부터 p5
고기 양파 치즈 양상추 피클 null null null null null이 출력되며
a.hamburger_name 에 불고기를 입력하면 p1~p6
햄 양파 치즈 양상추 토마토 피클 null null null null이 나옵니다.
즉 입력한 값에따라 p1~p10의 값이 null일수도있고 아닐수도있습니다.
입력한 값에따라 p1~p10의 값이 달라지는 경우 null값만 제외하여 출력하고싶을때 어떻게하는지를 질문드린겁니다 ㅠㅠ
추후에 여기서 얻는 값들을 이용해 update문에 포함시키려고합니다. 그래서 null들을 제외한 나머지 값들만 출력하고싶습니다.
간단히만 말하면 본문내용처럼 null값을 제외한 나머지 고기 양파 치즈 양상추 피클 만 출력되길 원합니다..
으.. 이렇게 설명드리는게 맞는지 모르겠네요 ㅠㅠㅠ
DB는 postgreSQL 에서 실행했습니다.
마농님 답변에서 두번째 경우를 작성해봤어요
with hambuger_list (name,price) as( SELECT '빅맥' , '6900' UNION ALL SELECT '베토디' , '7000' UNION ALL SELECT '불고기' , '4000' ) ,hambuger_recipe (name,recipe) as ( SELECT '빅맥' , '고기/양파/치즈/양상추/피클' UNION ALL SELECT '베토디' , '햄/고기/양파/양상추/토마토' UNION ALL SELECT '불고기' , '햄/고기/양파/양상추/토마토/치즈' ) SELECT a.name,UNNEST(STRING_TO_ARRAY( b.recipe ,'/') ) AS RECIPE FROM HAMBUGER_LIST A ,HAMBUGER_RECIPE B WHERE A.NAME = B.NAME AND A.NAME='빅맥' GROUP BY A.NAME,B.RECIPE ORDER BY 1 결과 : name | recipe 빅맥 고기 빅맥 양파 빅맥 치즈 빅맥 양상추 빅맥 피클