GBase 8s
其他
问答

8s不同版本语法是否存在差异

发表于2026-04-08 16:08:1640次浏览14个评论

开发环境使用GBase8sV8.8_TL_3.6.3_3X2_1_783c8d版本

生产环境使用GBase8sV8.8_AEE_3.5.1_3_6a4e30版本,在执行语句时,在开发环境可以正常执行,在生产环境报错

SELECT
   d.day_dt,
   t.GS1,
   t.GS2,
   t.GS3,
   t.GS4,
   t.GS5,
   t.GS6,
   t.GS7,
   t.GS8,
   t.GS9
FROM
   (
       SELECT '2026-03-31 00:00:00' day_dt UNION ALL
       SELECT '2026-04-01 00:00:00' day_dt UNION ALL
       SELECT '2026-04-02 00:00:00' day_dt UNION ALL
       SELECT '2026-04-03 00:00:00' day_dt UNION ALL
       SELECT '2026-04-04 00:00:00' day_dt UNION ALL
       SELECT '2026-04-05 00:00:00' day_dt UNION ALL
       SELECT '2026-04-06 00:00:00' day_dt UNION ALL
       SELECT '2026-04-07 00:00:00' day_dt UNION ALL
       SELECT '2026-04-08 00:00:00' day_dt UNION ALL
       SELECT '2026-04-09 00:00:00' day_dt UNION ALL
       SELECT '2026-04-10 00:00:00' day_dt UNION ALL
       SELECT '2026-04-11 00:00:00' day_dt UNION ALL
       SELECT '2026-04-12 00:00:00' day_dt UNION ALL
       SELECT '2026-04-13 00:00:00' day_dt UNION ALL
       SELECT '2026-04-14 00:00:00' day_dt UNION ALL
       SELECT '2026-04-15 00:00:00' day_dt UNION ALL
       SELECT '2026-04-16 00:00:00' day_dt UNION ALL
       SELECT '2026-04-17 00:00:00' day_dt UNION ALL
       SELECT '2026-04-18 00:00:00' day_dt UNION ALL
       SELECT '2026-04-19 00:00:00' day_dt UNION ALL
       SELECT '2026-04-20 00:00:00' day_dt UNION ALL
       SELECT '2026-04-21 00:00:00' day_dt UNION ALL
       SELECT '2026-04-22 00:00:00' day_dt UNION ALL
       SELECT '2026-04-23 00:00:00' day_dt UNION ALL
       SELECT '2026-04-24 00:00:00' day_dt UNION ALL
       SELECT '2026-04-25 00:00:00' day_dt UNION ALL
       SELECT '2026-04-26 00:00:00' day_dt UNION ALL
       SELECT '2026-04-27 00:00:00' day_dt UNION ALL
       SELECT '2026-04-28 00:00:00' day_dt UNION ALL
       SELECT '2026-04-29 00:00:00' day_dt UNION ALL
       SELECT '2026-04-30 00:00:00' day_dt UNION ALL
       SELECT '2026-04-31 00:00:00' day_dt
   ) d
LEFT JOIN (
   SELECT
       rea_dt,
       MAX(CASE WHEN m_id = 20 THEN rea_pp_0 END) GS1,
       MAX(CASE WHEN m_id = 21 THEN rea_pp_0 END) GS2,
       MAX(CASE WHEN m_id = 23 THEN rea_pp_0 END) GS3,
       MAX(CASE WHEN m_id = 24 THEN rea_pp_0 END) GS4,
       MAX(CASE WHEN m_id = 26 THEN rea_pp_0 END) GS5,
       MAX(CASE WHEN m_id = 27 THEN rea_pp_0 END) GS6,
       MAX(CASE WHEN m_id = 29 THEN rea_pp_0 END) GS7,
       MAX(CASE WHEN m_id = 30 THEN rea_pp_0 END) GS8,
       MAX(CASE WHEN m_id = 33 THEN rea_pp_0 END) GS9
   FROM rd_e_accu
   GROUP BY rea_dt
) t 
ON d.day_dt = t.rea_dt
ORDER BY d.day_dt asc

【GBase版本】:

【操作系统】:

【CPU】:

【问题描述】*:

评论

登录后才可以发表评论
用户头像
远方发表于 3个月前
开发环境版本更新,建议生产环境升级
用户头像
liaosnet发表于 3个月前
你这生产版本,建议升级。
用户头像
GBase用户28017发表于 3个月前
多少有点吧。
GBase用户21182发表于 3个月前
我认为是有的啦
GBase用户21182发表于 3个月前
开发环境:3.6.3(新版本)
→ 支持 SELECT 常量 UNION ALL 这种无表查询
GBase用户21182发表于 3个月前
生产环境:3.5.1(老版本)
→ 不支持不带 FROM 表的 SELECT 常量
→ 所以报错!
GBase用户21182发表于 3个月前
GBase 8s 3.5.1 是老版本,语法严格遵循 INFORMIX 语法:
必须 FROM 表,不能裸写 SELECT 常量。
最佳回答
用户头像
路路路发表于 3个月前
1
用户头像
路路路发表于 3个月前
2
用户头像
路路路发表于 3个月前
3
用户头像
路路路发表于 3个月前
4
用户头像
路路路发表于 3个月前
5
用户头像
柒柒天晴发表于 2个月前
向大佬学习
GBase用户51883发表于 2个月前
等答案了啊。