菜鸟求个查询的算法~
商品编号的生成:
1.需要同表中商品类别的字段作前缀,
2.并且查找同类别的数量自动+1生成;
例如:商品编号1001,商品类别100,如果下一个需要增加类别100的商品,
这就需要在增加商品的时候先查询一下类别为100的商品的数量+1,这个商品应该为1002;
请问数据库用什么函数能实现将1001截断为100的函数?
实现这个功能还有没有更加简便的方法?
问题点数:20、回复次数:4Top
1 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-01-26 23:54:37 得分 10
--先判断类型,然后循环该类型的产品,+1Top
2 楼scmail81(琳·风の狼(修罗))回复于 2006-01-27 00:08:31 得分 10
--数字
declare @i int
set @i=1001
set @i=cast(left(cast(@i as varchar),3) as int)
print @i
---- 字符
declare @i varchar(5)
set @i='1001'
set @i=left(@i,3)
print @iTop
3 楼scmail81(琳·风の狼(修罗))回复于 2006-01-27 00:11:11 得分 0
2.参考:
表的格式
1 CY00001
2 CY00002
3 CY00003
create table A
(
Id int,
T_id varchar(10)
)
create Function T_Fun()
returns varchar(100)
begin
declare @T_ID varchar(100)
select @T_ID= 'CY'+ right(cast(100000+isnull(max(cast(right(T_id,5) as int)),0)+1 as varchar),5) from A
return (@T_ID)
end
CREATE TRIGGER Insert_A on A
INSTEAD OF Insert
as
insert into A select A.id,dbo.T_Fun() from inserted A
insert A select 1,''
insert A select 2,''
insert A select 3,''
insert A select 4,''
insert A select 5,''
select * from A
Top
4 楼CS_D_N(含笑半步颠)回复于 2006-01-27 14:43:58 得分 0
问题已经解决~谢谢大家~Top




