where절 질문이요 ㅠㅠ 0 3 600

by 노랑별 [2016.07.05 15:57:36]


SELECT TP_TAKE_DATE
            ,GRANULATE_YIELD1
            ,GRANULATE_YIELD2
            ,GRANULATE_YIELD3
FROM TB_EC0131
WHERE TP_RM_FLAG = 'F'            

AND TO_CHAR(TO_DATE(TP_TAKE_DATE,'YY.MM.DD'),'YY.MM.DD') >= TO_CHAR(TO_DATE('15.08.24','YY.MM.DD')-2,'YY.MM.DD')    
AND TO_CHAR(TO_DATE(TP_TAKE_DATE,'YY.MM.DD'),'YY.MM.DD') <= TO_CHAR(TO_DATE('15.08.24','YY.MM.DD'),'YY.MM.DD')         
ORDER BY TP_TAKE_DATE ASC

 

이부분에서 GRANULATE_YIELD1,GRANULATE_YIELD2,GRANULATE_YIELD3 이 세개값중에 세개 모두값이 null 일때만 안보이게 하고싶은데ㅠ  저는 한개씩밖에 못하겠어가지고ㅠ is not null 을 묶어서 어떻게 ㅎㅐ야 하나요?ㅠㅠ

 

by 겸댕2후니 [2016.07.05 16:10:23]
GRANULATE_YIELD1||GRANULATE_YIELD2||GRANULATE_YIELD3 IS NOT NULL

 

 


by 마농 [2016.07.05 16:11:23]
SELECT tp_take_date
     , granulate_yield1
     , granulate_yield2
     , granulate_yield3
  FROM tb_ec0131
 WHERE tp_rm_flag = 'F'
-- 의미 없이 사용된 함수(TO_CHAR, TO_DATE)를 줄여야 합니다. --
   AND tp_take_date >= TO_CHAR(TO_DATE('15.08.24', 'yy.mm.dd')-2, 'yy.mm.dd')
   AND tp_take_date <= '15.08.24'
-- 다양한 방법이 있습니다. 편한걸로 골라 쓰세요. --
   AND (granulate_yield1 IS NOT NULL OR granulate_yield2 IS NOT NULL OR granulate_yield3 IS NOT NULL)
   AND NOT (granulate_yield1 IS NULL AND granulate_yield2 IS NULL AND granulate_yield3 IS NULL)
   AND granulate_yield1 || granulate_yield2 || granulate_yield3 IS NOT NULL
   AND COALESCE(granulate_yield1, granulate_yield2, granulate_yield3) IS NOT NULL
 ORDER BY tp_take_date
;

 


by 노랑별 [2016.07.05 16:18:42]

저렇게 많은 방법이 있었군요... 감사드립니다 ㅎㅎㅎ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입