베지터
60
2019-11-12 17:13:05
5
1193

java에서 db select sql문 사용시 null check


db select 문으로 where 조건 걸어서 특정 컬럼만 검색했을때, 조건이 안맞아서 아예 검색되는 row가 없을 경우도 있고, 조건은 맞지만 그 컬럼이 null 이여서 null이 출력되는경우도 있잖아요.

이때 java에서 이걸 똑같이 null로 출력하던데, 두개를 분리할 if문을 만들 방법이 없을까요?

감사합니다.

0
  • 답변 5

  • Prtiillaalkjf
    2k
    2019-11-12 17:43:59

    확실히 무슨말인지 모르겠지만..

    java단이아닌 xml 쪽에서 if문으로 구분하면되지않을까요

  • Chan_
    295
    2019-11-12 19:28:48

    이해가 잘 안가지만 다이나믹 쿼리를 사용하시면 되지 않을까요?

  • 초무쿤
    6k
    2019-11-12 19:34:49

    Where 조건으로 조회해서 검색걸고 없으면 안나옵니다.null이 아님.

    햐당 경우 혹시 groupby나 sum등 집계데이터면

    COALESCE(컬럼,0) 으로 하시면 됩니다.

  • __jj__
    669
    2019-11-12 20:11:22

    data가 null 인 경우는 쿼리 결과값의 사이즈가 1 이상이고 쿼리 결과가 없을때는 0이겠지요.

  • 베지터
    60
    2019-11-13 09:32:47

    답변들 감사합니다 ㅜ 

    그런데 java에서는 검색결과 없어도 null, 검색결과는 있지만 그 결과가 null인 값으로 들어가 있을때도 그냥 null로 출력하는것 같더라고요(system.out.println 으로만 출력해봤지만..;;)

    예를들면 학생테이블에서 학생이 든 동아리를 학생 이름을 조건삼아 검색한다고 했을때,

    -> select 동아리명 from  학생 where name = "아무개"; 라고 검색했을때, 

    "아무개"인 학생이 어떤 동아리에도 가입하지 않다면, null인 row 가 출력되겠지요.

    그런데 학교에 없는 학생인 "외계인"이라는 학생을 검색한다고 했을때,

    -> select 동아리명 from 학생 where name ="외계인"; 을 검색한다고 하면, 

    아예 where 절 조건이 틀렸기 때문에 쿼리 결과값이 0이지요.


    제가 궁금한 것은 이때 java에서 두가지 상화을 어떻게 분리해낼 수 있느냐입니다.

    둘다 nullexception이 터지는것 같아서요. 감사합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.