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

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

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

以下的文章主要描述的是正确运用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://2345hao.cn/blog/index.php/post/22022.html

分享给朋友:

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

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

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

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

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

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7如何创建拨号连接

windows 7如何创建拨号连接

一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...

windows 7玩网游PING高即网络延时比较高的解决方法

windows 7玩网游PING高即网络延时比较高的解决方法

经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...