我正在尝试运行以下查询,但它无效!
select extract(month from flight_date_time) mnt from T_PEREXOD where extract( year from flight_date_time)='2012'
group by mnt
order by mnt
我也试过了次要的
select mnt from (select extract(month from flight_date_time) AS mnt from T_PEREXOD)
group by mnt
order by mnt
但它会弹出一个错误 令牌无效。
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 18.
select.
这是Firebird版本1的问题吗?
如果没有任何视图,程序,计算字段等进行灌浆工作怎么样?因为我不想改变那个数据库!
答案 0 :(得分:3)
首先 - Extract返回一个smallint或十进制值,这样你的clousure就错了。
第二 - 从1.5上起支持子查询
尝试在第一个查询中更改SELECT EXTRACT(...) as mnt
(添加为)或尝试使用列索引分组,如
GROUP BY 1
ORDER BY 1
Firebird 1.0 sql一致性是你可能会感兴趣的,但这是我能找到的唯一一个: http://www.firebirdsql.org/en/sql-conformance/
如果您有任何机会,我建议您更新到最新版本的FB