개발/postgresql / / 2023. 3. 14. 18:40

[Capstone Project] ERROR: could not identify an equality operator for type json

반응형
※ 해당 글은 capstone 종합설계 프로젝트를 하면서 적었던 일지를 돌아보며 작성한 것입니다.

개발일지 2022.11.02

WITH workspace_code AS(
            SELECT workspace_idx
            FROM workspace
            WHERE code = '0002'
        )

        SELECT 
            (SELECT template_name FROM template AS TP WHERE TP.template_idx = CT.template_idx),
            (SELECT texture_idx FROM texture AS TX WHERE TX.texture_idx = CT.texture_idx),
            (SELECT texture_name FROM texture AS TX WHERE TX.texture_idx = CT.texture_idx),
            position_array,
            adjust_value
        FROM cloth_top AS CT
        WHERE model_idx = (
            SELECT top_model_idx FROM workspace_cloth
            WHERE workspace_idx = (SELECT workspace_idx FROM workspace_code)
        )
        UNION
        SELECT 
            (SELECT template_name FROM template AS TP WHERE TP.template_idx = CB.template_idx),
            (SELECT texture_idx FROM texture AS TX WHERE TX.texture_idx = CB.texture_idx),
            (SELECT texture_name FROM texture AS TX WHERE TX.texture_idx = CB.texture_idx),
            position_array,
            adjust_value
        FROM cloth_bottom AS CB
        WHERE model_idx = (
            SELECT top_model_idx FROM workspace_cloth
            WHERE workspace_idx = (SELECT workspace_idx FROM workspace_code)
        )

위 코드에서 발생한 에러이다.

 

adjust_value column은 json인데 UNION으로 컬럼을 합칠 때 json의 경우 합치는 operator가 적용되지 않는 모양이다.

그래서 ::text로 캐스팅해서 union하니까 잘된다 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유