经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
拆分字符串为单一字符
来源:cnblogs  作者:Insus.NET  时间:2018/11/19 9:14:07  对本文有异议

如下面这个样子:

 

本函式是学习使用WHILE以及SUBSTRING的应用:

 

  1. CREATE FUNCTION [dbo].[svf_SplitStringToSingleCharacter](
  2. @DataSource NVARCHAR(4000)
  3. )
  4. RETURNS NVARCHAR(4000)
  5. AS
  6. BEGIN
  7. DECLARE @rtvResult NVARCHAR(4000),@length INT
  8.  
  9. SET @length = lEN(ISNULL(@DataSource,''))
  10. IF @length = 0
  11. SET @rtvResult = N''
  12. ELSE
  13. BEGIN
  14. WHILE @length > 0
  15. BEGIN
  16. SET @rtvResult = ISNULL(@rtvResult + ',',N'') + '''' + SUBSTRING(@DataSource,@length,1) + ''''
  17. SET @length = @length - 1
  18. END
  19. END
  20. RETURN @rtvResult
  21. END
Source Code

 
上面的自定义的函数,在执行之后所得到的结果,并没有按照输入的顺序排列。

那Insus.NET可以修改一下:

 

  1. CREATE FUNCTION [dbo].[svf_SplitStringToSingleCharacter1](
  2. @DataSource NVARCHAR(4000)
  3. )
  4. RETURNS NVARCHAR(4000)
  5. AS
  6. BEGIN
  7. DECLARE @rtvResult NVARCHAR(4000),@length INT
  8.  
  9. SET @length = lEN(ISNULL(@DataSource,''))
  10. IF @length = 0
  11. SET @rtvResult = N''
  12. ELSE
  13. BEGIN
  14. DECLARE @i INT = 1
  15. WHILE @i <= @length
  16. BEGIN
  17. SET @rtvResult = ISNULL(@rtvResult + ',',N'') + '''' + SUBSTRING(@DataSource,1,1) + ''''
  18. SET @DataSource = STUFF(@DataSource,1,1,N'')
  19. SET @i = @i + 1
  20. END
  21. END
  22. RETURN @rtvResult
  23. END
  24. GO
Source Code

 

再来看看执行的结果:

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

本站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号