묻고답하기
xml 쿼리 중 column 항목이 null일때 특정 값으로 치환 질문
2016.08.02 17:51
안녕하세요. XE 초보입니다.
찾아보다가 도저히 안되서 질문게시판에 글을 남깁니다.
질문.
xml 쿼리 중 column 항목이 null일때 특정 값으로 치환하는 방법이 있는건가요?
EX) <column name="made_status" alias="made_status" default="DEFAULT" />
이런식으로 made_status가 NULL이면 DEFAULT 라는 값으로 치환 하려 합니다.
default라는 속성이 있어서 사용하였지만 select 할때는 사용이 안되는지 치환이 안되네요.
아직 초보라..방법을 잘 모르겠네요.
고수분들의 도움을 요청드립니다.
댓글 4
-
HowtoXE
2016.08.02 23:41
-
라크
2016.08.03 17:51
답변 주셔서 감사합니다.
단순 View에 뿌려주기 위함이라면 조회된 쿼리 결과를 가공하여 null값을 특정 값으로 변경하면 됩니다.
하지만 현재는 4개의 테이블을 left join하고 있으며, 조건절에 null값을 "DEFAULT"로 변경한 made_status값을 사용하여야 합니다.
즉 made_status값은 조회된 쿼리를 가공하기 전에 null값을 'DEFAULT'라는 특정값으로 변경하여 조건절에서 사용하여 특정 값을 조회 하려 합니다.
설명이 많이 부족하면서도 해답을 원하는것 같아서 부끄럽네요.
혹 위의 부족한 내용을 보시고도 이해가 되시고 방법 또한 존재한다면 댓글 부탁드리겠습니다.
감사합니다.
-
SimpleCode
2016.08.03 17:56
XML Query에서는 그렇게 복잡한 쿼리를 지원하지 않기 때문에 직접 쿼리를 작성하셔야 할 것 같습니다.
left join, right join, left outer join, right outer join, sub query 이 정도의 아주 기본적인 쿼리는 지원하는데,
DBMS 상에서 조건문으로 분기해서 특정 쿼리를 실행하는 건 지원하지 않더라고요.
$oDB = DB::getInstance();
$result = $oDB->_query('SELECT ~ ');
while($row = $oDB->_fetch($result))
{
....
}이런 식으로요.
-
라크
2016.08.03 17:59
안녕하세요. 빠른 답변 감사합니다.
결국은 직접 쿼리를 작성하는 방법밖에 없군요^^
말씀주신대로 직접 쿼리를 작성하여 진행해야 할듯 합니다. 감사합니다.
XML쿼리에서는 불가능할 것 같습니다. 그런 용도로 default가 들어가 있는 건 아니니까요. 그런데 굳이 쿼리에서 처리할 필요도 없을텐데요. 어차피 쿼리결과를 생짜로 집어넣을 것도 아니고 가공하려면 루프로 푸실 것인데 if(!$result->made_status) $result->made_status = 원하는 값; 이렇게만 루프 안에 넣어줘도 될 것 같습니다.