經常使用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)+@splitlen,'')
	 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
相關文章
相關標籤/搜索