sql在数据库正常执行,在mybatis中报错

问题遇到的现象和发生背景

使用with as子查询中用union all出现问题

问题相关代码,请勿粘贴截图
    WITH iporesult AS(
        (SELECT
          a.index_score,
            a.ipo_type
        FROM t_b_ipo_one_level_index_score a
        WHERE
            a.company_id = #{companyId}
        AND a.ipo_type = '1'
        AND (
            a.report_time IS NULL
            OR a.report_time = (SELECT MAX(b.report_time) FROM t_b_ipo_one_level_index_score b
                WHERE b.company_id = #{companyId} AND b.ipo_type = '1')
        )ORDER BY a.report_time ASC)
        UNION ALL
        (SELECT
          a.index_score,
            a.ipo_type
        FROM t_b_ipo_one_level_index_score a
        WHERE
            a.company_id = #{companyId}
        AND a.ipo_type = '2'
        AND (
            a.report_time IS NULL
            OR a.report_time = (SELECT MAX(b.report_time) FROM t_b_ipo_one_level_index_score b
                WHERE b.company_id = #{companyId} AND b.ipo_type = '2')
        )ORDER BY a.report_time ASC)
        UNION ALL
        (SELECT
          a.index_score,
            a.ipo_type
        FROM t_b_ipo_one_level_index_score a
        WHERE
            a.company_id = #{companyId}
        AND a.ipo_type = '3'
        AND (
            a.report_time IS NULL
            OR a.report_time = (SELECT MAX(b.report_time) FROM t_b_ipo_one_level_index_score b
                WHERE b.company_id = #{companyId} AND b.ipo_type = '3')
        )ORDER BY a.report_time ASC)
        UNION ALL
        (SELECT
          a.index_score,
            a.ipo_type
        FROM t_b_ipo_one_level_index_score a
        WHERE
            a.company_id = #{companyId}
        AND a.ipo_type = '4'
        AND (
            a.report_time IS NULL
            OR a.report_time = (SELECT MAX(b.report_time) FROM t_b_ipo_one_level_index_score b
                WHERE b.company_id = #{companyId} AND b.ipo_type = '4')
        )ORDER BY a.report_time ASC)
        UNION ALL
        (SELECT
          a.index_score,
            a.ipo_type
        FROM t_b_ipo_one_level_index_score a
        WHERE
            a.company_id = #{companyId}
        AND a.ipo_type = '5'
        AND (
            a.report_time IS NULL
            OR a.report_time = (SELECT MAX(b.report_time) FROM t_b_ipo_one_level_index_score b
                WHERE b.company_id = #{companyId} AND b.ipo_type = '5')
        )ORDER BY a.report_time ASC)
        )
        SELECT
            SUM(ipo.index_score) AS ipoMatchingDegreeScore,
            ipo.ipo_type as ipoType,
            CASE ipo.ipo_type
                WHEN '1' THEN '主板'
                WHEN '2' THEN '新三板'
                WHEN '3' THEN '科创板'
                WHEN '4' THEN '创业板'
                WHEN '5' THEN '北交所'
            ELSE '' END AS ipoMatchingDegreeName
        FROM iporesult ipo
        GROUP BY ipo.ipo_type
运行结果及报错内容

Error querying database. Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'sult AS(

        (SELECT
  ', expect RPAREN, actual LPAREN pos 32, line 1, column 19, token LPAREN : WITH iporesult AS(
        (SELECT
          a.index_score,
            a.ipo_type
        FROM t_b_ipo_one_level_index_score a
        WHERE
            a.company_id = ?
我的解答思路和尝试过的方法
我想要达到的结果

有没有可能是格式错了

img