SQL Server标量函数例子
SQL Server的函数是非常实用的功能,简单的有自带的Convert等类型转换的函数,如果需要复杂点的功能则需要用户自定义函数。
自定义函数又分为表值函数、标量函数等,其中标量函数是比较常用的,可以完成一些数据格式的转换。表值函数返回一张表,可以结合存储过程或单独使用。这里拍砖引玉,贴两段实用功能的标量函数作为参考。
一、字符串填充
create function [dbo].[PadLeft](@OriginalString varchar (20), @PaddingChar char (1), @TotalLength int) Returns Varchar (24) As Begin Declare @NewString varchar ( 24 ) Select @NewString = IsNull ( Replicate ( @PaddingChar , @TotalLength - Len ( isnull ( @OriginalString , 0 ))), '' ) + @OriginalString Return @NewString End
调用方式:
select dbo.PadLeft('101', '0', 10) --1010000000
二、字符串转16进制
create FUNCTION [dbo].[VarCharToHex] ( -- Add the parameters for the function here @Str varchar(400) ) RETURNS varchar(800) AS BEGIN declare @i int, @Asi int, @Mods int, @res varchar(800), @Len int, @Cres varchar(4), @tempStr varbinary(400) select @i = 1, @res = '', @Len = DATALENGTH(@Str), @tempStr = CONVERT(varbinary,@Str) while @i<=@Len begin select @Asi = SUBSTRING(@tempStr,1,1), @Cres='' while @Asi<>0 begin select @Mods = @Asi % 16, @Cres = case when (@Mods > 9) then char(ASCII('A')+@Mods - 10)+@Cres else CAST(@Mods AS varchar(4)) + @Cres end, @Asi = @Asi /16; end; select @res = @res + @Cres, @tempStr = SUBSTRING(@tempStr,2,@Len - 1), @i = @i + 1 end; return @res; END
调用方式:
select [dbo].[VarCharToHex]('00001375') --3030303031333735
分类:
data
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库