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

数据库 SQL Server
我们今天主要向大家讲述的是正确运用SQL Server UDF填充字符串的实际操作步骤。同时我们以实例方式对其进行说明。

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

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

 

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

 

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

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

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

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

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

 

  1. CREATE FUNCTION [dbo].[usp_pad_string]   
  2. (  
  3. @string_unpadded VARCHAR(100),  
  4. @pad_char VARCHAR(1),  
  5. @pad_count tinyint,  
  6. @pad_pattern INT)  
  7. RETURNS VARCHAR(100)  
  8. AS  
  9. BEGIN  
  10. DECLARE @string_padded VARCHAR(100)  
  11. SELECT @string_padded =  
  12. CASE @pad_pattern  
  13. WHEN 0 THEN REPLICATE(@pad_char, @pad_count) + @string_unpadded --pad left  
  14. WHEN 1 THEN @string_unpadded + REPLICATE(@pad_char, @pad_count) --pad right  
  15. WHEN 2 THEN  
  16. --pad center  
  17. LEFT(@string_unpadded, FLOOR(LEN(@string_unpadded)/2))  
  18. + REPLICATE(@pad_char, @pad_count)  
  19. + RIGHT(@string_unpadded, LEN(@string_unpadded) - FLOOR(LEN(@string_unpadded)/2))  
  20. WHEN 3 THEN  
  21. --pad edges  
  22. REPLICATE(@pad_char, FLOOR(@pad_count/2))  
  23. + @string_unpadded  
  24. + REPLICATE(@pad_char, @pad_count - FLOOR(@pad_count/2))  
  25. END  
  26. RETURN @string_padded  
  27. END  

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

【编辑推荐】

  1. 安装SQL Server 2005数据库的性能监视器计数器
  2. SQL Server视图运行的提高与索引
  3. SQL Server性能进行提高的4项技术概述
  4. SQL Server数据转换服务的妙招之一
  5. SQL Server数据库的妙招用法

 

责任编辑:佚名 来源: 赛迪网
相关推荐

2010-09-13 15:12:26

sql server字

2010-06-28 15:18:51

SQL Server

2010-11-08 17:07:41

SQL Server字

2010-09-03 11:35:50

2010-06-17 16:00:59

SQL Server

2021-03-14 15:07:55

SQLServer数据库字符串

2010-09-13 15:06:40

sql server字

2010-06-28 10:36:42

SQL Server数

2010-09-13 14:55:09

sql server字

2010-07-09 09:54:34

SQL Server字

2010-11-08 15:58:54

SQL Server连

2010-07-07 13:39:33

SQL Server监

2010-07-14 16:37:33

SQL Server拆

2010-07-26 08:49:58

SQL Server游

2010-09-09 11:48:00

SQL函数字符串

2010-09-14 14:32:02

sql server日

2010-06-17 16:13:05

SQL Server

2010-09-13 15:50:03

sql server数

2011-08-22 10:59:42

SQL Server日期时间格式转换字符串

2010-07-09 10:36:22

SQL Server
点赞
收藏

51CTO技术栈公众号