这篇文章主要讲解了“实用的SQL Server脚本函数方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实用的SQL Server脚本函数方法有哪些”吧!

1、字符串指定字符分割为list

--字符串指定字符分割为listCREATEFUNCTION[dbo].[splitl](@StringVARCHAR(MAX),@DelimiterVARCHAR(MAX))RETURNS@temptableTABLE(itemsVARCHAR(MAX))ASBEGINDECLARE@idxINT=1DECLARE@sliceVARCHAR(MAX)IFLEN(@String)<1ORLEN(ISNULL(@String,''))=0RETURNWHILE@idx!=0BEGINSET@idx=CHARINDEX(@Delimiter,@String)IF@idx!=0SET@slice=LEFT(@String,@idx-1)ELSESET@slice=@StringIFLEN(@slice)>0INSERTINTO@temptable(items)VALUES(@slice)SET@String=RIGHT(@String,LEN(@String)-@idx)IFLEN(@String)=0BREAKENDRETURNENDGO--调用方式SELECT*FROMdbo.splitl('aaa|bbb|ccc','|')

2、数字去掉末尾的0

--数字去掉末尾的0CREATEfunction[dbo].[ClearZero](@inValuevarchar(50))returnsvarchar(50)asbegindeclare@returnValuevarchar(20)if(@inValue='')set@returnValue=''--空的时候为空elseif(charindex('.',@inValue)='0')set@returnValue=@inValue--针对不含小数点的elseif(substring(reverse(@inValue),patindex('%[^0]%',reverse(@inValue)),1)='.')set@returnValue=left(@inValue,len(@inValue)-patindex('%[^0]%',reverse(@inValue)))--针对小数点后全是0的elseset@returnValue=left(@inValue,len(@inValue)-patindex('%[^0]%.%',reverse(@inValue))+1)--其他任何情形return@returnValueend--调用示例SELECTdbo.ClearZero(258.250300)

3、创建表、视图、函数、存储过程判断是否存在

/*判断函数/方法是否存在,若存在则删除函数/方法*/IFEXISTS(SELECT*FROMdbo.sysobjectsWHEREname='Func_Name')DROPFUNCTIONFunc_Name;GO--创建函数/方法CREATEFUNCTIONFunc_Name(@aINT)RETURNINTASBEGIN--codingENDGO/*判断存储过程是否存在,若存在则删除存储过程*/IFEXISTS(OBJECT_NAME('Proc_Name','P')ISNOTNULLDROPPROCProc_Name;GO--创建存储过程CREATEPROCProc_NameASSELECT*FROMTable_NameGO/*判断数据表是否存在,若存在则删除数据表*/IFEXISTS(SELECT*FROMdbo.sysobjectsWHEREname='Table_Name')DROPVIEWTable_Name;GO--创建数据表CREATETABLETable_Name(IdINTPRIMARYKEYNOTNULL)/*判断视图是否存在,若存在则删除视图*/IFEXISTS(SELECT*FROMsys.viewsWHEREname='View_Name')DROPVIEWView_NameGO--创建视图CREATEVIEWView_NameASSELECTSELECT*FROMtable_nameGO

4、金额转换为大写

/*说明:数字金额转中文金额示例:187.4转成壹佰捌拾柒圆肆角整*/CREATEFUNCTION[dbo].[CNumeric](@numnumeric(14,2))returnsnvarchar(100)BEGINDeclare@n_datanvarchar(20),@c_datanvarchar(100),@n_strnvarchar(10),@iintSet@n_data=right(space(14)+cast(cast(abs(@num*100)asbigint)asnvarchar(20)),14)Set@c_data=''Set@i=1WHILE@i<=14Beginset@n_str=substring(@n_data,@i,1)if@n_str<>''beginIFnot((SUBSTRING(@n_data,@i,2)='00')or((@n_str='0')and((@i=4)or(@i=8)or(@i=12)or(@i=14))))SET@c_data=@c_data+SUBSTRING(N'零壹贰叁肆伍陆柒捌玖',CAST(@n_strASint)+1,1)IFnot((@n_str='0')and(@i<>4)and(@i<>8)and(@i<>12))SET@c_data=@c_data+SUBSTRING(N'仟佰拾亿仟佰拾万仟佰拾圆角分',@i,1)IFSUBSTRING(@c_data,LEN(@c_data)-1,2)=N'亿万'SET@c_data=SUBSTRING(@c_data,1,LEN(@c_data)-1)ENDSET@i=@i+1ENDIF@num<0SET@c_data='(负数)'+@c_dataIF@num=0SET@c_data='零圆'IF@n_str='0'SET@c_data=@c_data+'整'RETURN(@c_data)END

感谢各位的阅读,以上就是“实用的SQL Server脚本函数方法有哪些”的内容了,经过本文的学习后,相信大家对实用的SQL Server脚本函数方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!