Sybase SQL Anywhere 怎么取数据第一行

wixinyoyo 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 提示出错

...全文
700 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
SHMLB 2013-05-09
  • 打赏
  • 举报
回复
select first ch_XXX from table where ....
wixinyoyo 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
  • 打赏
  • 举报
回复
贴记录及要求结果出来看看,表中有无唯一标识的字段
wixinyoyo 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压缩
wixinyoyo 2013-04-25
  • 打赏
  • 举报
回复
这是我表里的数据,我导出来的,可以供你们导入测试 http://download.csdn.net/detail/yo_yo2005/5299191
wixinyoyo 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);


wixinyoyo 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'

wixinyoyo 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)
wixinyoyo 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了
wixinyoyo 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
wixinyoyo 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 太低 不支持吗?
wixinyoyo 2013-04-24
  • 打赏
  • 举报
回复
我的数据库是 Sybase SQL Anywhere Database Engine Version 5.5.03
wixinyoyo 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)
曾经使用过Sybase SQL Anywhere 11数据同步采用内置插件MobiLink居于日志事务流形式的通讯,优点速度快、准确、夸平台,网络开销极低情况下保证通讯顺畅不丢包。由于工作原因开始接触MSSQL,有人说MSSQL没有此功能、类似的功能不好用等诸多说法,也很好奇全国某些知名软件开发上采用MSSQL,但数据库之间通讯还采用自己写通讯程序完成数据库之间数据交换,效率低、操作繁琐、数据传输重复、漏传、致命性错误、人工干预滞后等诸多问题。我想那么大一个微软公司不可能没有办法解决此问题,最近几天本开始研究了一下MSSQL复制服务,通过发布和订阅达到数据通讯或者备份目的,首先我点评一下MSSQL复制服务,整体来说感觉还不错,缺点是不启动管理器没法监控发布和订阅情况(也许本人不够专业,没有发现)。复制服务需要发布、分发、订阅三部分组成,发布与分发可以集成在一起,如果订阅端较多建议独立分发。 测试环境Windows2008ServerR2+MSSQL2008R2SP3,两台计算机,发布与分发一体,然后一个订阅端。 1、 发布与分发服务器计算机名:Publish_Server IP地址:192.168.20.1 2、 订阅服务器计算机名:Subscribe_Server IP地址:192.168.20.2 由于没有域控环境,首先在两台机器的hosts文件的尾部加入: 192.168.20.1 Publish_Server 192.168.20.2 Subscribe_Server 加入的原因是没有域控和DNS服务器,通过机器名解析能快速准确的解析到IP地址只有在hosts文件中做文章,我想这个你应该懂的! 如何安装MSSQL2008R2我就不在说了自己到百度搜索,首先关闭两台机器本机自带防火墙或者把1433、21端口加入防火墙策略,1433端口不用说了吧!21是用于FTP第一次分发快照的端口。 SQL2008提供的发布类型有4种:(我先照搬微软的说明) 1、 快照发布:发布服务器按预定的时间间隔向订阅服务器发送已发布的数据库快照。 2、 事务发布:在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式 传输到订阅服务器。 3、 具有可更新订阅的事务发布:在 SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。 4、 合并发布:在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Compact Edition 只能订阅合并发布。 (1)快照发布,这种每次订阅服务器都去下载完整快照这效率低,对网络要求也高,个人觉得不可。(2)事务发布,只要订阅服务器收到初始快照后,订阅服务器将用事务流的方式到发布上数据,速度相当快网络和机器性能好的情况毫秒级的响应,这种模式数据是单向的,发布服务器到订阅服务器,订阅服务器端不能对数据进行修改,即使进行了修改是也暂时的,下次发布服务器对应数据做了更新后订阅服务器数据将被同步。(3)具有可更新订阅的事务发布,这个研究了半天没有成功,还要在订阅服务器上把分发服务器作为链接服务器,本人愚昧没有实验成功。(4)合并发布,数据在发布和订阅端都可以进行修改,而且可以自动合并。根据同场景本人推荐:事务发布和合并发布,记住它们最大的区别就是事务发布是数据单向传送、合并发布是数据双向传送。 注意任何时候MSSQL叫你输入服务器名称都要用实例名不能输入IP地址(一台机器上只安装了一个实例的话实例名就是计算机名,这下知道hosts文件的重要性了吧,谁叫我们不在域控制器下呢!其实在微软操作系统中计算机名比IP高一级,但我们在使用中往往把IP地址看得比计算机更重要,这就是没有域控制器的原因。为了计算机名能快速、准确的解析到就乖乖的去hosts文件中添加吧!)

2,596

社区成员

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

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