当前位置:首页 > 系统运维 > 正文内容

SQL Server UDF填充字符串的正确运用方案

a8116255316年前 (2010-07-16)系统运维11

以下的文章主要描述的是正确运用SQL Server UDF填充字符串的实际操作步骤,这个问题看似很简单,即在创建一个用户定义的实际操作函数,这个函数允许填充理想字符是有限数量的一个字符串。

一旦我决定填充的位置能够定制以便满足最终用户的要求时,这个实验就变成一个涉及更多问题的函数从而变得不能满足需要了。

虽然Transact-SQL (T/SQL)没有提供一个类似于其他关系数据库所提供的LPAD和RPAD的可比函数,但是SQL Server专业版提供了REPLICATE()函数,它可以用来建立一个简单的用户定义函数从而填充一个字符串。在讲解定制填充函数的代码之前,让我们来看看这个REPLICATE()函数以及它能够提供什么吧。

REPLICATE (string_expression ,integer_expression)允许你复制一个字符串(string_expression参数是指每个integer_expression参数连续的次数)。

下面是这个函数的一个简单实例:

SELECT REPLICATE('ABCDE|', 3)   ABCDE|ABCDE|ABCDE|  (1 row(s) affected) 

尽管REPLICATE()函数允许你返回一个更高可达8000字节的字符串,我将要创建的这个函数将基于varchar(100)的一个输出结果值。你可以修改这个值来满足你的要求,尽管如此,我很少需要填充一个大于20个字符的字符串值。

我认为创建一个函数用于一个未SQL Server UDF填充字符串的左边或右边是值得的。接下来,问题就变得很有趣,那就是假如由于某些原因你需要在字符串中间填充怎么办 在该字符串的左边和右边都平均填充怎么样呢 无论你是否使用这些选项,这个功能都会提供给你。下面的代码就是我创建的函数。

CREATE FUNCTION [dbo].[usp_pad_string]   (  @string_unpadded VARCHAR(100),  @pad_char VARCHAR(1),  @pad_count tinyint,  @pad_pattern INT)  RETURNS VARCHAR(100)  AS  BEGIN  DECLARE @string_padded VARCHAR(100)  SELECT @string_padded =  CASE @pad_pattern  WHEN 0 THEN REPLICATE(@pad_char, @pad_count) + @string_unpadded --pad left  WHEN 1 THEN @string_unpadded + REPLICATE(@pad_char, @pad_count) --pad right  WHEN 2 THEN  --pad center  LEFT(@string_unpadded, FLOOR(LEN(@string_unpadded)/2))  + REPLICATE(@pad_char, @pad_count)  + RIGHT(@string_unpadded, LEN(@string_unpadded) - FLOOR(LEN(@string_unpadded)/2))  WHEN 3 THEN  --pad edges  REPLICATE(@pad_char, FLOOR(@pad_count/2))  + @string_unpadded  + REPLICATE(@pad_char, @pad_count - FLOOR(@pad_count/2))  END  RETURN @string_padded  END  

以上的相关内容就是对运用SQL Server UDF填充字符串的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/22022.html

分享给朋友:

“SQL Server UDF填充字符串的正确运用方案” 的相关文章

Windows7开机后出现黑一下屏性能降低

Windows7开机后出现黑一下屏性能降低

打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...