sybase 存储过程 声明赋值问题

snake00007 2013-09-15 09:17:45
ASE 12.5 的数据库

BEGIN
DECLARE @test VARCHAR(1000)

SET @test = SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123'

PRINT @test

END


sql 语句为 SELECT top 1 SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO like '123123%'

都是报incorrect syntax near the keyword 'select'这个错,麻烦大家给看一下。
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgjlry 2013-09-22
  • 打赏
  • 举报
回复
sybase 不能这样提取,建议您使用以下方式提取: DECLARE @ss numeric SELECT TOP 1 ODS_oth_charge_case.intPmireq_Seq INTO #ss_test FROM ODS_oth_charge_case SELECT @ss =#ss_test.intPmireq_Seq FROM #ss_test SELECT @ss
ceozenliu 2013-09-18
  • 打赏
  • 举报
回复
引用: 我想打印SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123'这条sql的执行结果 可以寫成這樣: SELECT @test=SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123'
snake00007 2013-09-18
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
12.5.4以前的版本是没有top n 可以用先执行:set rowcount 50 就可以显示前50条记录。
请问怎么将set rowcount 50拼到sql里?
snake00007 2013-09-18
  • 打赏
  • 举报
回复
引用 2 楼 ceozenliu 的回复:
SET @test = SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123' 你忘了加引號,改成: SET @test = “SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123'”
我想打印SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123'这条sql的执行结果 加了引号 直接打印sql语句了。
WWWWA 2013-09-16
  • 打赏
  • 举报
回复
12.5.4以前的版本是没有top n 可以用先执行:set rowcount 50 就可以显示前50条记录。
ceozenliu 2013-09-16
  • 打赏
  • 举报
回复
SET @test = SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123' 你忘了加引號,改成: SET @test = “SELECT SUBSTRING(A,4,6) FROM CI_REG WHERE CUSTNO ='123123'”

2,596

社区成员

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

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