我们有一串字符串,比如:

DECLARE @Source VARCHAR(MAX)= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

现想把它反转显示:

ZYXWVUTSRQPONMLKJIHGFEDCBA

此时,你可以写一个方法来处理:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: Insus.NET
-- Create date: 2019-05-16
-- Update date: 2019-05-16
-- Description: 反转字符
CREATE FUNCTION [dbo].[svf_ReverseString] (
@Source VARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @Destination VARCHAR(MAX) = ''
WHILE LEN(@Source) > 0
BEGIN
IF LEN(@Source) = 0
BEGIN
SET @Destination = @Source + @Destination
SET @Source = ''
END
ELSE
BEGIN
SET @Destination = SUBSTRING(@Source, 1, 1) + @Destination
SET @Source = SUBSTRING(@Source, 2, LEN(@Source))
END
END RETURN @Destination
END
GO

Source Code

举例运行上面的方法:

哈哈,一切都是白忙,因为Microsoft 已经提供有一个现型的方法REVERSE:

以上不管是哪一个方法,对下面这种情况进行反转,不知是否OK? 字符串以空格为单词进行反转。

因此,得写另外一个方法来处理:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: Insus.NET
-- Create date: 2019-05-16
-- Update date: 2019-05-16
-- Description: 反转函数
CREATE FUNCTION [dbo].[svf_Reverse] (
@Source VARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @Destination VARCHAR(MAX) = '' WHILE LEN(@Source) > 0
BEGIN
IF CHARINDEX(' ', @Source) > 0
BEGIN
SET @Destination = SUBSTRING(@Source, 0, CHARINDEX(' ', @Source)) + ' ' + @Destination
SET @Source = LTRIM(RTRIM(SUBSTRING(@Source, CHARINDEX(' ', @Source) + 1, LEN(@Source))))
END
ELSE
BEGIN
SET @Destination = @Source + ' ' + @Destination
SET @Source = ''
END
END
RETURN @Destination
END
GO

Source Code

最新文章

  1. 在CentOS或RHEL防火墙上开启端口
  2. Android获取时间
  3. iOS开发实用干货——强化你的Xcode控制台
  4. 2012 Asia JinHua Regional Contest
  5. UNITY3D使用NGUI制作自适应UI的总结
  6. 如何讓Android系統顯示CJK擴展區漢字
  7. XAMPP(v1.83)中的PHP(v5.5.15)访问SQLServer2014
  8. B计划
  9. Breadth-first search 算法(Swift版)
  10. PMP知识点(二)——三点估算的两种方法对活动持续时间估算的影响和如何取舍
  11. Java探针
  12. Centos6.8部署jumpserver(完整版)
  13. java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration] with root cause
  14. self.location.href
  15. Zabbix系列之一——zabbix3.4部署
  16. ​《数据库系统概念》4-DDL、集合运算、嵌套子查询
  17. php根据命令行参数生成配置文件
  18. 矩阵分解----Cholesky分解
  19. CUDA从入门到精通 - Augusdi的专栏 - 博客频道 - CSDN.NET
  20. linux 转移mysql文件操作流程

热门文章

  1. mybatis 执行查询时报错 【Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: 】
  2. 【题解】cycle
  3. 我的Java开发学习之旅------>Java经典排序算法之插入排序
  4. Coin和Token有什么区别
  5. Memcached的优点
  6. Database: key
  7. 3D特效焦点图
  8. DOM的构建与优化
  9. CentOS Wifi Connection
  10. python学习笔记:第八天(模块)