1. 程式人生 > >常用SQL函式(字串分隔轉表、自增長轉編號)

常用SQL函式(字串分隔轉表、自增長轉編號)

字串分隔轉表

-- =============================================
-- Author:		
-- Create date: 
-- Description:	分割字串
-- =============================================
ALTER FUNCTION [dbo].[Fun_SplitSTR](
	@s   varchar(max),   --待分拆的字串
	@split varchar(10)     --資料分隔符
)
RETURNS @re TABLE(col varchar(max))
AS
BEGIN
	 DECLARE @splitlen int
	 SET @splitlen=LEN(@split+'a')-2
	 WHILE CHARINDEX(@split,@s)>0
	 BEGIN
		INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
		SET @s=STUFF(@s,1,CHARINDEX(@split,@s)
[email protected]
,'') END INSERT @re VALUES(@s) RETURN END

 自增長轉編號

/**
* 根據自增長,得出Sno的函式
*/
CREATE Function [dbo].[Fun_GetSNo](
	@Prefix varchar(2),
	@TableName varchar(30)
)
returns varchar(12)
as 
begin
	declare @ID numeric(18,0)
	select @ID=IDENT_CURRENT(@TableName)--獲取當前設定表的標識ID

  	if (@ID is null) 
	begin
		return @Prefix+right( replicate('0',10)+cast(1 as varchar),10)
	end
	return @Prefix+right( replicate('0',10)+cast(@ID as varchar),10)
END