初学者的问题,关于存储过程,进者有分!!

areswang 2006-02-17 08:21:40
各位好,
我是SQL初学者,遇到一个问题,关于存储过程的,假设有一张表,其中包括字段(商品编号),并且字段长为8位,现在要求做一个存储过程,当输入1时,就会显行00000001,当输入11时,就会显示00000011,当111时为00000111。谢谢各位,问题解决,马上结。急用。
...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
点点星灯 2006-02-20
  • 打赏
  • 举报
回复
declare @t table(kkk int) --定义一个表变量

insert @t values(1) --向表中插入数据
insert @t values(11)
insert @t values(111)
insert @t values(1111)


select right('00000000'+convert(varchar(20),kkk),8) from @t
--转换
areswang 2006-02-17
  • 打赏
  • 举报
回复
我的QQ,313142113
areswang 2006-02-17
  • 打赏
  • 举报
回复
有点看不明白了,我回去好好研究一下,
真的很感谢你的帮忙,刚开始学SQL,太多的不懂了,
能不能加你的QQ?有事好请教!
点点星灯 2006-02-17
  • 打赏
  • 举报
回复
用存储过程的output来解决,参考如下

存储过程嵌套的问题

for example:
-------------------------------------------------------
create procedure sp_test1
@id int output
as
begin
set @id = 100
return
end
go

create procedure sp_test2
as
begin
declare @id int
exec sp_test1 @id output
select @id
end
go

exec sp_test2
go

drop procedure sp_test1,sp_test2
go
areswang 2006-02-17
  • 打赏
  • 举报
回复
谢谢了,不过怎样返回编号(00000001)啊,是不是在存储过程里加个参数,如何做啊?
点点星灯 2006-02-17
  • 打赏
  • 举报
回复

declare @t table(kkk int)

insert @t values(1)
insert @t values(11)
insert @t values(111)
insert @t values(1111)


select right('00000000'+convert(varchar(20),kkk),8) from @t
lsqkeke 2006-02-17
  • 打赏
  • 举报
回复
declare @a int
set @a=111
select right(100000000+@a,8)
点点星灯 2006-02-17
  • 打赏
  • 举报
回复
select right('00000000'+convert(varchar(20),字段),8) from 表名

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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