xml 쿼리에서 CAST가 먹네요?
문자열 데이터를 숫자형으로 가져와서 최소값/최대값 비교를 하기 위해 CAST를 써봤는데, 이게 xml 쿼리에서 먹더라구요.
방법이 막막해서 질문글 올리려는 중에ㅋ 완전 우연히 얻어걸린 거여서 신기해하고 있습니다.
이렇게 하는 게 바람직한지 모르겠는데, 전문가분들께 검증도 받을 겸 혹시나 도움이 될까 해서 기록 차원에서 남겨봅니다.
<query id="getMaxAndMinValueWithinExtraVars" action="select">
<tables>
<table name="documents" />
<table name="document_extra_vars" alias="extra_vars" />
</tables>
<columns>
<column name="MAX(CAST(extra_vars.value as signed))" alias="max" />
<column name="MIN(CAST(extra_vars.value as signed))" alias="min" />
</columns>
<conditions>
<condition operation="in" column="documents.module_srl" var="module_srl" filter="number" />
<condition operation="in" column="documents.category_srl" var="category_srl" filter="number" pipe="and" />
<condition operation="in" column="documents.member_srl" var="member_srl" filter="number" pipe="and" />
<condition operation="in" column="documents.status" var="statusList" pipe="and" />
<condition operation="equal" column="extra_vars.module_srl" default="documents.module_srl" pipe="and" />
<condition operation="equal" column="extra_vars.document_srl" default="documents.document_srl" pipe="and" />
<condition operation="equal" column="extra_vars.eid" var="var_eid" notnull="notnull" pipe="and" />
</conditions>
</query>
<tables>
<table name="documents" />
<table name="document_extra_vars" alias="extra_vars" />
</tables>
<columns>
<column name="MAX(CAST(extra_vars.value as signed))" alias="max" />
<column name="MIN(CAST(extra_vars.value as signed))" alias="min" />
</columns>
<conditions>
<condition operation="in" column="documents.module_srl" var="module_srl" filter="number" />
<condition operation="in" column="documents.category_srl" var="category_srl" filter="number" pipe="and" />
<condition operation="in" column="documents.member_srl" var="member_srl" filter="number" pipe="and" />
<condition operation="in" column="documents.status" var="statusList" pipe="and" />
<condition operation="equal" column="extra_vars.module_srl" default="documents.module_srl" pipe="and" />
<condition operation="equal" column="extra_vars.document_srl" default="documents.document_srl" pipe="and" />
<condition operation="equal" column="extra_vars.eid" var="var_eid" notnull="notnull" pipe="and" />
</conditions>
</query>

윤삼
Lv. 19
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
댓글 6
저 자리가 원래 간단한 함수는 사용할 수 있는 곳입니다.
뭔가를 세려고 할 때 <column name="COUNT(*)" alias="count" /> 이렇게 많이 쓰지요.^^
다만, 너무 복잡한 문법을 넣으면 잘못 해석될 가능성도 있습니다.
큭, 도움이 되었다니 감개무량입니다~~