【Vegas原创】按自定义格式进行编号的SQL自定义函数
2014-05-22 15:50
330 查看
生成格式如:DT.EMP.0000000001的自增emp_id, 加入EmpBaseINfo表中。
--生成格式如DT.EMP.0000000001 【Vegas Add】
ALTER FUNCTION [dbo].[Get_EmpBaseInfo_AccountID](@RowID as int)
RETURNS nvarchar(50) as
begin
declare @oid nvarchar(50)
declare @headStr nvarchar(50)
set @headStr='DT.EMP.'
----------------------------RowID的计算--------------------------------------
if exists(select 1 from empbaseinfo)
--如empbaseinfo存在数据,count(*)后直接加RowID
begin
select @oid=count(1) from empbaseinfo
set @oid=@oid+ @RowID
end
else
set @oid=@RowID
----------------------------补全十个数------------------------------
declare @str nvarchar(50) --临时编号
set @str=convert(nvarchar,(convert(int,right(@oid,10))))
while (10-len(@str)>0)
begin
set @str='0'+@str
end
set @oid=@headStr+@str
---------------------------返回值---------------------------------------------------------
RETURN @oid
end
调用:
select dbo.Get_EmpBaseInfo_AccountID(ROW_NUMBER() OVER(ORDER BY hbdwno)) as id,
hbdwno,hbdbno,hbdenm,hbdcnm,
(case hbdgdr when 1 then 'M' when 0 then 'F' end),
(case hbdidl when 1 then 'IDL' when 0 then 'DL' end),
hbdwdt,hbdbir,hbdmds,'DT' as domain
from hrmsdt.hrms.dbo.hrshhbd
order by hbdwno
参考文档:http://www.cnblogs.com/ringwang/archive/2008/05/14/1197065.html
--生成格式如DT.EMP.0000000001 【Vegas Add】
ALTER FUNCTION [dbo].[Get_EmpBaseInfo_AccountID](@RowID as int)
RETURNS nvarchar(50) as
begin
declare @oid nvarchar(50)
declare @headStr nvarchar(50)
set @headStr='DT.EMP.'
----------------------------RowID的计算--------------------------------------
if exists(select 1 from empbaseinfo)
--如empbaseinfo存在数据,count(*)后直接加RowID
begin
select @oid=count(1) from empbaseinfo
set @oid=@oid+ @RowID
end
else
set @oid=@RowID
----------------------------补全十个数------------------------------
declare @str nvarchar(50) --临时编号
set @str=convert(nvarchar,(convert(int,right(@oid,10))))
while (10-len(@str)>0)
begin
set @str='0'+@str
end
set @oid=@headStr+@str
---------------------------返回值---------------------------------------------------------
RETURN @oid
end
调用:
select dbo.Get_EmpBaseInfo_AccountID(ROW_NUMBER() OVER(ORDER BY hbdwno)) as id,
hbdwno,hbdbno,hbdenm,hbdcnm,
(case hbdgdr when 1 then 'M' when 0 then 'F' end),
(case hbdidl when 1 then 'IDL' when 0 then 'DL' end),
hbdwdt,hbdbir,hbdmds,'DT' as domain
from hrmsdt.hrms.dbo.hrshhbd
order by hbdwno
参考文档:http://www.cnblogs.com/ringwang/archive/2008/05/14/1197065.html
相关文章推荐
- 【Vegas原创】按自定义格式进行编号的SQL自定义函数
- 【Vegas原创】按自定义格式进行编号的SQL自定义函数
- [原创]SQL表值函数:返回自定义时间段的日期数据
- 【Vegas原创】select时,一个栏位按123进行编号的方法
- [原创]SQL表值函数:获取从当月计算起往前自定义月份数
- 从 SQL 进行操作系统调用,DB2自定义函数的使用
- 【Vegas原创】select时,一个栏位按123进行编号的方法
- [原创]SQL 表值函数:获取从今天计算起往前自定义天数
- [原创]SQL表值函数:返回从当前周开始往回的自定义周数
- 【Vegas原创】select时,一个栏位按123进行编号的方法
- sql 自定义函数--固定格式字符转时间类型
- 今天写的Sql语句,对日期格式进行规范的.
- SQL自定义函数求当天最小时间和最大时间
- 一段SQL(自定义函数)
- Transact-SQL中自定义函数的限制
- 经典SQL自定义函数
- SQL中的convert 函数控制输出的时间格式
- 在ASP(VB)中自定义日期格式的函数
- SQL调用正则表达式自定义函数(转载:CSDN)
- SQL进行函数查询