我的一张表中有一个'YEAR'列,如果是用IB 5.X的服务器和客户端,Sql操作没有问题,但用7.0,却...

northwind001 2003-02-14 02:51:06
我的一张表中有一个'YEAR'列,如果是用IB 5.X的服务器和客户端,Sql操作没有问题,但用7.0,却...出现这样的问题:

操作:
select * from table1 where Year='2001'

问题:
General SQL error.
Token unknown - line 3,character 19 year.


怀疑是不是7.0中把Year作为关键字来用了?或者...?
...全文
27 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwind001 2003-02-17
  • 打赏
  • 举报
回复
改数据字段和程序代码是必需的了。谢谢各位,结帖。
erickleung 2003-02-15
  • 打赏
  • 举报
回复

select * from table1 where table1.year='2002'

select * from table1 where "table1.year"='2002'

会如何?

因为 sql_dialet =3 是有日期数据类型, 还是不用 year 为字段名较好.
northwind001 2003-02-14
  • 打赏
  • 举报
回复
在Interactive SQL中
create table test(
year char(4)
)不成功。

create table test(
nian char(4)
)成功了。


northwind001 2003-02-14
  • 打赏
  • 举报
回复
呵呵,我刚才是试过之后才说的。:)
CuteBit 2003-02-14
  • 打赏
  • 举报
回复
我的也是 7.0。
我想这个不是什么大问题,你可以自己试试。
有时我们容易将责任推卸到工具身上。

如果你想得到帮助,你就应该提供更多详细的信息。
northwind001 2003-02-14
  • 打赏
  • 举报
回复
可是因为year是关键字
create table test(
year char(4)
)

就会抛出异常来了。莫非我的7.0版本有问题?
northwind001 2003-02-14
  • 打赏
  • 举报
回复
怪事。
CuteBit 2003-02-14
  • 打赏
  • 举报
回复
我没遇到问题,测试如下
create table test(
year char(4)
)

INSERT INTO "TEST" ("year") VALUES ('2002');
INSERT INTO "TEST" ("year") VALUES ('2003');
INSERT INTO "TEST" ("year") VALUES ('2004');

select * from test where "year" = '2002'
northwind001 2003-02-14
  • 打赏
  • 举报
回复
错了,也不对。
northwind001 2003-02-14
  • 打赏
  • 举报
回复
select * from table1 where "year"="2002",就对了。
northwind001 2003-02-14
  • 打赏
  • 举报
回复
char(4)

另外:
select * from table1 where "year"<>'2002',结果是所有的纪录都查出来了。:)
CuteBit 2003-02-14
  • 打赏
  • 举报
回复
year 的字段类型是什么?(char or varchar)
异常的出错信息是什么?

以后请你先把问题描述清楚,否则别人很难帮你的。~~
netwolfds 2003-02-14
  • 打赏
  • 举报
回复
在interbase7.0里面,双引号内的字符是区分大小写的,有没有注意?
northwind001 2003-02-14
  • 打赏
  • 举报
回复
netwolfds的方法出现异常
northwind001 2003-02-14
  • 打赏
  • 举报
回复
table1

代码 年份 数值
A01 2002 123
A02 2001 234

select * from table1没问题。
select * from table1 where "year"='2002',查询结果为空。
CuteBit 2003-02-14
  • 打赏
  • 举报
回复
哦,,来个例子看~
northwind001 2003-02-14
  • 打赏
  • 举报
回复
把sql改过之后,查询倒是没出错,但是结果不对。
northwind001 2003-02-14
  • 打赏
  • 举报
回复
当初做的时候IB用的是5.0,因此没考虑进来。thx.
CuteBit 2003-02-14
  • 打赏
  • 举报
回复
select * from table1 where Year='2001'
改成
select * from table1 where "Year"='2001'

建议,以后尽量不要使用常见的函数单词定义自己的东西,那样容易冲突。
netwolfds 2003-02-14
  • 打赏
  • 举报
回复
是,6.0开始就已经是关键字了。
试试select * from table1 where table1."Year"='2001'

加载更多回复(1)

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧