经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
前导或后导字符串
来源:cnblogs  作者:Insus.NET  时间:2019/5/13 8:54:27  对本文有异议

根据需求,需要把某一些数字或字符串进行格式化,前导或后导字符串。Insus.NET把这个功能写成一个自定义函数。需要时,直接使用即可。

 

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5.  
  6. -- =============================================
  7. -- Author: Insus.NET
  8. -- Create date: 2019-05-10
  9. -- Update date: 2019-05-10
  10. -- Description: 前导或后导字符
  11. -- =============================================
  12. CREATE FUNCTION [dbo].[svf_LeadingString]
  13. (
  14. @OriginalCharacter NVARCHAR(MAX),
  15. @ExpectedLength INT,
  16. @PadCharacterString NVARCHAR(MAX),
  17. @LeadingToRight BIT
  18. )
  19. RETURNS NVARCHAR(MAX)
  20. AS
  21. BEGIN
  22. DECLARE @rtv NVARCHAR(MAX) = @OriginalCharacter
  23.  
  24. IF LEN(ISNULL(@OriginalCharacter,'')) < @ExpectedLength
  25. BEGIN
  26. DECLARE @ReplicateString NVARCHAR(MAX) = REPLICATE(@PadCharacterString, @ExpectedLength - LEN(@OriginalCharacter))
  27. IF @LeadingToRight = 1
  28. SET @rtv = @OriginalCharacter + @ReplicateString
  29. ELSE
  30. SET @rtv = @ReplicateString + @OriginalCharacter
  31. END
  32. RETURN @rtv
  33. END
  34.  
  35. GO
Source Code

 

举例可以更好说明函数使用如何。

 

  1. --创建临时表,并随机添加一些数据
  2. DECLARE @dumpTable AS TABLE ([OriginalCharacter] NVARCHAR(MAX))
  3. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES (12)
  4. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES (3456)
  5. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES ('RT')
  6. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES ('GFR')
  7. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES ('345E')
  8. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES (43)
  9. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES (7777)
  10. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES (254687)
  11. INSERT INTO @dumpTable ([OriginalCharacter]) VALUES ('adrf')
  12. --设置自定义函数的参数
  13. DECLARE @ExpectedLength INT = 8, @PadCharacterString NVARCHAR(MAX) = '0'
  14.  
  15.  
  16. SELECT [OriginalCharacter],
  17. [dbo].[svf_LeadingString]([OriginalCharacter],@ExpectedLength,@PadCharacterString,0) AS [LeadingToLeft],
  18. [dbo].[svf_LeadingString]([OriginalCharacter],@ExpectedLength,@PadCharacterString,1) AS [LeadingToRight]
  19. FROM @dumpTable
Source Code

 

原文链接:http://www.cnblogs.com/insus/p/10842839.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号