문자열 데이터를 숫자형으로 가져와서 최소값/최대값 비교를 하기 위해 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>

 

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile
    예전 XE처럼 MSSQL이나 큐브리드 등 다양한 DBMS를 지원하는 상황이라면 사용하면 안되겠지만, 라이믹스 전용이라면 사용하셔도 상관없을겁니다.
  • profile profile
    역시 라이믹스가 아니면 다른 방법으로 우회하든 return하든 해야겠군요.
  • profile

    저 자리가 원래 간단한 함수는 사용할 수 있는 곳입니다.

    뭔가를 세려고 할 때 <column name="COUNT(*)" alias="count" /> 이렇게 많이 쓰지요.^^

    다만, 너무 복잡한 문법을 넣으면 잘못 해석될 가능성도 있습니다.

  • profile profile
    XML 쿼리에 COUNT MIN MAX 정도만 지원되는 줄 알았는데, 이쪽은 활용도가 꽤 개방적이군요ㅎㅎ
  • profile
    오! 좋은거 또 하나 배워갑니다 ㅎ
  • profile profile

    큭, 도움이 되었다니 감개무량입니다~~