生成编号的存储过程或者函数(这个分数不好拿啊,难)
生成编号的存储过程或者函数
编号是树型表的编号
说明
1表 tb
字段
id varchar(50)
name varchar(50)
code varchar(50)
rank int
parentid varchar(50)
数据:
id name code rank parentid
a01 ex A 1 0
a0101 ex 01 2 a01
a0102 ex 02 2 a01
a0103 ex 03 2 a01
a02 ex B 1 0
a0201 ex 01 2 a02
a0202 ex 02 2 a02
a0202001 ex 01 3 a0202
a0202002 ex 02 3 a0202
如果给出一个参数parentid求出id
我现在用c#求的
方法是:
先 根据sql="select * from "+table+" where parentid='"+parentid+"'";
1如果有值,则求出值中最大的id再加上1返回id就是所求
注意:这里有一种情况就是 当parentid=a0202的时候,为什么下级是a0202001,而不是a020201
2如果没有值,则先判断parentid是否等于"0"
如果等于返回id="a01"
如果不等于"0"则根据sql="select * from "+table+" where id='"+parentid+"'";求出rank---> id=parentid+rank个"0"+"1"
例如:parentid=a0202002
则他会判断没有值,走上面的2,然后判断不等于"0",接着又sql="select * from "+table+" where id='a0202002'"
求出rank等于3,则通过id=parentid+rank个"0"+"1"则应该返回id=a02020020001
再例如:parentid=a01则它会通过select * from "+table+" where parentid='"+parentid+"'判断有值,则求出最大的+1应该返回a0104
再例如:parentid=0 则应该返回a03
编号是树型表的编号
说明
1表 tb
字段
id varchar(50)
name varchar(50)
code varchar(50)
rank int
parentid varchar(50)
数据:
id name code rank parentid
a01 ex A 1 0
a0101 ex 01 2 a01
a0102 ex 02 2 a01
a0103 ex 03 2 a01
a02 ex B 1 0
a0201 ex 01 2 a02
a0202 ex 02 2 a02
a0202001 ex 01 3 a0202
a0202002 ex 02 3 a0202
如果给出一个参数parentid求出id
我现在用c#求的
方法是:
先 根据sql="select * from "+table+" where parentid='"+parentid+"'";
1如果有值,则求出值中最大的id再加上1返回id就是所求
注意:这里有一种情况就是 当parentid=a0202的时候,为什么下级是a0202001,而不是a020201
2如果没有值,则先判断parentid是否等于"0"
如果等于返回id="a01"
如果不等于"0"则根据sql="select * from "+table+" where id='"+parentid+"'";求出rank---> id=parentid+rank个"0"+"1"
例如:parentid=a0202002
则他会判断没有值,走上面的2,然后判断不等于"0",接着又sql="select * from "+table+" where id='a0202002'"
求出rank等于3,则通过id=parentid+rank个"0"+"1"则应该返回id=a02020020001
再例如:parentid=a01则它会通过select * from "+table+" where parentid='"+parentid+"'判断有值,则求出最大的+1应该返回a0104
再例如:parentid=0 则应该返回a03
...全文
相关推荐
存储过程自动生成项目编号
生成类似于 AHBC20131101001的编号
自动生成编号【sql】
本代码主要是对一些需要生成字母+数字作为编号操作,代码代码经过【SQL2005】测试。希望要用这个的朋友就少写这对代码。
存储过程-自动生成编号
简单实用,自动生成编号,很好的解决了编号统一标准的问题。
Oracle生成单据编号存储过程的实例代码
Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号。下面给大家分享oracle生成单据编号存储过程,需要的的朋友参考下吧
一个自动产生编号的存储过程
一个自动产生编号的存储过程 数据库sql2000或2005


