紧急!这句查询在MSSQL中没问题但在Sybase中就报错,请帮忙看看

GhostAdai 2008-06-30 10:57:38
在MSSQL中我用以下查询:select top 10 cardid,salesman,begindate from card where salesman='张三' and cardid not in (select top 10 cardid from card where salesman='张三' order by cardid) order by cardid
没有问题,但在Sybase下就报错,应该怎么解决呢?
我是要作分页查询,如果这样写不行的话应该怎么换成Sybase中对应的SQL语句?不要用set rowcount的方法,因为我是在程序中执行,不能向数据库中添加存储过程的。
...全文
334 25 打赏 收藏 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
litongqq 2012-04-04
  • 打赏
  • 举报
回复
top 10后面加上*就可以了
GhostAdai 2008-08-01
  • 打赏
  • 举报
回复
已经结贴了还能抽时间解答我的问题,谢谢了,等我有时间再试试吧。
jamo 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 GhostAdai 的回复:]
我更晕~~
我就是没看明白为什么不直接写"select col1, sybid=identity(12) into #temp_tab from tab1"这一句而是还多替换一次,难道有什么玄机?
我不是不知道后面的拼字符串的参数是什么意思,而是identity(12)这个是代表什么因为没以前用过Sybase数据库所以不明白,中间的12改变会有什么影响麻烦再耐心解释一下,因为我在网上看到有些例子这里写的是10。
瀑布寒自己一个先-_-bbb
[/Quote]

你也可以直接写。因为分页而额外加上的东西对每条语句都是一样的, 用替换是为了不用每次都敲同样的东西, 粘贴即可。
12 相当于整型ID的位数, 当然 10 / 5 位随你需要。

同瀑布汗你一个……
GhostAdai 2008-07-26
  • 打赏
  • 举报
回复
谢谢大家的回复,这段时间要忙别的工程,这个问题先搁下了,回头有时间再试大家提出的方案行不行,先结贴了。
ribut9225 2008-07-16
  • 打赏
  • 举报
回复

用游标做吧

低版本不支持TOP的

就用游标检索数据,到了10条记录就退出
ntahua 2008-07-16
  • 打赏
  • 举报
回复
set rowcount不一定要在过程里使用。不知道你说的在程序里使用是什么意思,反正我编程的时候用过没问题
GhostAdai 2008-07-15
  • 打赏
  • 举报
回复
另外我已经试过了jamo的方法,结论是:不行!报内存不足的错误。
GhostAdai 2008-07-03
  • 打赏
  • 举报
回复
再次先谢谢各位这么耐心的给我解释。
GhostAdai 2008-07-03
  • 打赏
  • 举报
回复
我更晕~~
我就是没看明白为什么不直接写"select col1, sybid=identity(12) into #temp_tab from tab1"这一句而是还多替换一次,难道有什么玄机?
我不是不知道后面的拼字符串的参数是什么意思,而是identity(12)这个是代表什么因为没以前用过Sybase数据库所以不明白,中间的12改变会有什么影响麻烦再耐心解释一下,因为我在网上看到有些例子这里写的是10。
瀑布寒自己一个先-_-bbb
jamo 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 GhostAdai 的回复:]
我昏~写代码的人不代表什么数据库都会用,明白?我只知道你那是用建临时表的方法,能不能用还是两个字!
[/Quote]
我也晕~ 哈
1、能用的,12.5, 15.0 都正确运行;
2、详细注释如下:
sql = "select col1 from tab1"; // 初始语句

// Paging
sql = sql.replaceFirst(" from ", ", sybid=identity(12) into #temp_tab from ");
// replaceFirst是个基本函数, 看名字就知道是干啥的,写过代码的人都知道, 所以我说……
// 此句后语句变成 select col1, sybid=identity(12) into #temp_tab from tab1


sql = sql + " select * from #temp_tab where sybid > " + (pageno-1)*rec_per_page + " and sybid <= " + (pageno)*rec_per_page ;
// 这里面的 pageno, rec_per_page 两个变量不懂啥意思? 这点英文水平不能没有吧。
// 这句是添加多一个sql语句。 前句把结果放到临时表, 后句取出特定位置的记录



我都佩服死自己了, 太有耐心了!
wenjunqianli 2008-07-02
  • 打赏
  • 举报
回复
set rowcount 10
select cardid,salesman,begindate from card where salesman='张三' and cardid not in (select top 10 cardid from card where salesman='张三' order by cardid) order by cardid
set rowcount 0
这样不就完了?不可能在程序中写二句么

GhostAdai 2008-07-01
  • 打赏
  • 举报
回复
我昏~写代码的人不代表什么数据库都会用,明白?我只知道你那是用建临时表的方法,能不能用还是两个字!
jamo 2008-07-01
  • 打赏
  • 举报
回复
看来你是不写代码的人, 那我就不浪费口水了。
GhostAdai 2008-06-30
  • 打赏
  • 举报
回复
我晕啊,事态紧急啊,真没办法解决的话我饭碗都得丢了啊,那个头儿屁都不懂,现在他只认准了是我的问题,快来个人救命啊!
sybasebbs 2008-06-30
  • 打赏
  • 举报
回复
暂无好的方法,要么升级,要么工程也不小。
GhostAdai 2008-06-30
  • 打赏
  • 举报
回复
现在的问题是数据库不是我来管理啊,是另一个部门负责的,他们不动我也没辄!没有其他办法代替吗?或者有其他在查询时分页的方法也行,如果是缓存数据集就免了,数据量太大,慢还不说,总报内存不够的错。
wwwwb 2008-06-30
  • 打赏
  • 举报
回复
不支持TOP,升级吧
GhostAdai 2008-06-30
  • 打赏
  • 举报
回复
昏~~~数据库不是我管,版本低我也没办法,现在程序没法过老板只会找我的麻烦,我总不能说:管理员你去把数据库升级一下吧!
hobbylu 2008-06-30
  • 打赏
  • 举报
回复
版本太低
GhostAdai 2008-06-30
  • 打赏
  • 举报
回复
com.sybase.jdbc2.jdbc.SybSQLException: Incorrect syntax near the keyword 'top'
好像是top关键字有问题。
加载更多回复(5)
内容概要:本文围绕基于物理场的动态模式分解(piDMD)展开研究,重点探讨其在流体力学、热传导及多物理耦合系统中的建模与应用。通过Matlab代码实现,将传统的动态模式分解(DMD)方法与物理场控制方程相结合,引入物理约束以增强数据驱动模型的物理一致性,从而提升对复杂非线性系统的模态提取精度与长期预测能力。文章系统阐述了piDMD的理论基础、数学推导过程与算法实现步骤,并结合典型物理场仿真案例(如Navier-Stokes方程驱动的流场演化)进行验证,展示了其在降阶建模、主导模态识别和时空动态可视化方面的优越性能,适用于高维、强耦合、非平稳系统的分析与优化。; 适合人群:具备一定数值计算、流体力学、控制理论或数据驱动建模背景,熟悉Matlab编程与线性代数运算,从事科学研究、工程仿真或系统辨识工作的研究生、科研人员及工程师。; 使用场景及目标:①实现对流场、温度场等物理场的高效降阶建模与动态行为预测;②提取符合物理规律的关键模态,用于系统稳定性分析与控制设计;③支撑复杂系统的状态估计、异常检测与优化调控等下游任务。; 阅读建议:建议读者结合提供的Matlab代码逐行调试与运行,深入理解piDMD算法中物理约束的嵌入方式及其对模态质量的影响,同时可尝试将其迁移至其他偏微分方程描述的物理系统中进行拓展验证与应用。
内容概要:本文研究了在峰谷分时电价引导下,基于多目标优化遗传算法NSGA-II的电动汽车充电负荷优化问题。通过构建以电网负荷波动最小化和用户充电成本最低为核心的多目标优化模型,利用NSGA-II算法求解获得帕累托最优解集,实现对大规模电动汽车充电行为的有序引导。文中系统阐述了峰谷电价激励机制的设计原理、电动汽车充电负荷的数学建模方法、多目标优化问题的形式化表达以及NSGA-II算法的具体实现流程,并借助Matlab平台进行仿真验证,结果表明该策略能有效平抑电网负荷峰谷差、降低用户充电支出并提升电力系统的运行效率与稳定性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事智能电网、电动汽车调度、需求侧管理等相关领域的研究生或科研人员。; 使用场景及目标:①研究峰谷电价政策对电动汽车充电行为的影响机制;②掌握NSGA-II算法在电力系统多目标优化中的具体应用;③实现电动汽车集群的有序充电调度以改善电网负荷曲线; 阅读建议:此资源结合了电力经济学与智能优化算法,建议读者在学习过程中重点关注模型构建与算法实现的衔接部分,动手复现仿真代码以深入理解参数设置与结果分析过程。

2,598

社区成员

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

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