Sybase SQL Anywhere 怎么取数据第一行

pbwubaba 2013-04-24 04:36:02
Sybase SQL Anywhere 怎么取数据库第一行


SQL Server 语法
select top 1 from oper_log;

Oracle 语法
select * from oper_log where rownum = 1;


Sybase SQL Anywhere 用什么语法呢

我用top 1 提示出错

...全文
717 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
SHMLB 2013-05-09
  • 打赏
  • 举报
回复
select first ch_XXX from table where ....
pbwubaba 2013-05-04
  • 打赏
  • 举报
回复
就怪这啃爹的ASA5了~~我实在没有办法
iihero 2013-05-02
  • 打赏
  • 举报
回复
sigh, 数据库太古老了,只能凭借理解性的SQL来试了, 试试这个,看看好不好用? select * from oper_log a where not exists (select 1 from oper_log where a.oper_date+a.oper_time< oper_date + oper_time)
WWWWA 2013-04-25
  • 打赏
  • 举报
回复
贴记录及要求结果出来看看,表中有无唯一标识的字段
pbwubaba 2013-04-25
  • 打赏
  • 举报
回复
引用 16 楼 WWWWA 的回复:
上传到www.access911.net/csdn ,用WINRAR压缩
我已上传。。。
WellSoft 2013-04-25
  • 打赏
  • 举报
回复
ASA12测试OK: SELECT TOP 5 * FROM product ORDER BY productid DESC
  • 打赏
  • 举报
回复
很明显是ASA5不支持top
WWWWA 2013-04-25
  • 打赏
  • 举报
回复
上传到www.access911.net/csdn ,用WINRAR压缩
pbwubaba 2013-04-25
  • 打赏
  • 举报
回复
这是我表里的数据,我导出来的,可以供你们导入测试 http://download.csdn.net/detail/yo_yo2005/5299191
pbwubaba 2013-04-25
  • 打赏
  • 举报
回复
这是我的表结构建表语句

CREATE TABLE oper_log
(
	xh integer NOT NULL,
	oper char(10) NOT NULL,
	operter char(10) NOT NULL,
	oper_date date NOT NULL,
	oper_time time NULL,
	box_type char(6) NULL,
	box_no char(10) NULL,
	user_id char(10) NULL,
	name char(10) NULL,
	zj numeric(12,2) NULL,
	aj numeric(12,2) NULL,
	phone char(20) NULL,
	mz integer NULL
);

Alter table oper_log add PRIMARY KEY (xh);


pbwubaba 2013-04-25
  • 打赏
  • 举报
回复
引用 12 楼 WWWWA 的回复:
贴记录及要求结果出来看看,表中有无唯一标识的字段


这是我用

SELECT * From oper_log Where box_no = 'A11148' And oper = '销户' And (zj < 0 Or aj < 0) Order By xh Desc;

语句查询到的数据

我想取出第一条数据,也就是xh=163的数据
我现在用TOP 1 它提示我 syntax error near '1'

pbwubaba 2013-04-24
  • 打赏
  • 举报
回复
引用 9 楼 WWWWA 的回复:
select * from tt a where exists(select 1 from tt where a.box_no=box_no and a.oper_date<oper_date)
这也不行呢 出来数据太多了~~
WWWWA 2013-04-24
  • 打赏
  • 举报
回复
select * from tt a where exists(select 1 from tt where a.box_no=box_no and a.oper_date<oper_date)
pbwubaba 2013-04-24
  • 打赏
  • 举报
回复
引用 7 楼 WWWWA 的回复:
google搜索窗口函数 select top 1 xh from oper_log Where box_no = 'A001' Order By xh Desc 能否通过 不能估计不支持TOP了
你所说的什么 google搜索窗口函数 我还是不懂哦 数据库语句不支持 取第一行 我也感觉很奇怪呢 到底是我的语法不对呢还是5.5.03 版本不支持 郁闷哦~~ 还是没解决
WWWWA 2013-04-24
  • 打赏
  • 举报
回复
google搜索窗口函数 select top 1 xh from oper_log Where box_no = 'A001' Order By xh Desc 能否通过 不能估计不支持TOP了
pbwubaba 2013-04-24
  • 打赏
  • 举报
回复
引用 5 楼 WWWWA 的回复:
我是在ASA12下测试的,窗口函数应该知道吧? select top 1 xh from oper_log Where box_no = 'A001' Order By oper_date Desc
不能用的 还是提示上面那个图片上的错 syntax error near '1' 什么是窗口函数? 我是在它自带的ISQL工具里测试的
WWWWA 2013-04-24
  • 打赏
  • 举报
回复
我是在ASA12下测试的,窗口函数应该知道吧? select top 1 xh from oper_log Where box_no = 'A001' Order By oper_date Desc
pbwubaba 2013-04-24
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
SELECT * FROM ( SELECT *,ROW_NUMBER() OVER(ORDER BY DM) DM1 FROM AA ) AA WHERE DM1=1 OR SELECT TOP 1 * FROM AA ORDER BY DM
我的版本是5.5.03 太低 不支持吗?
pbwubaba 2013-04-24
  • 打赏
  • 举报
回复
我的数据库是 Sybase SQL Anywhere Database Engine Version 5.5.03
pbwubaba 2013-04-24
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
SELECT * FROM ( SELECT *,ROW_NUMBER() OVER(ORDER BY DM) DM1 FROM AA ) AA WHERE DM1=1 OR SELECT TOP 1 * FROM AA ORDER BY DM
第一句不懂什么意思 第二句不能用,就是报刚才那个错 我是这样的语句,不知道怎么取第一行

select xh from oper_log
Where box_no = 'A001' Order By oper_date Desc
加载更多回复(1)

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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