Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL Server中反转字符串而不使用反转函数?_Sql Server_String_Reverse - Fatal编程技术网

Sql server 如何在SQL Server中反转字符串而不使用反转函数?

Sql server 如何在SQL Server中反转字符串而不使用反转函数?,sql-server,string,reverse,Sql Server,String,Reverse,我有一个字符串“传统”。 我想颠倒字符的顺序,结果应该是“LANOITIDART”。 不使用reverse()函数,如何在SQL server中实现此功能?您可以创建以下函数- CREATE function StringReverse(@inputstring varchar(max)) returns varchar(max) AS BEGIN DECLARE @i int, @Result varchar(max) SET @Resu

我有一个字符串“传统”。 我想颠倒字符的顺序,结果应该是“LANOITIDART”。
不使用reverse()函数,如何在SQL server中实现此功能?

您可以创建以下函数-

CREATE function StringReverse(@inputstring varchar(max))  
returns varchar(max)   
AS  
BEGIN  
  DECLARE @i int,   
          @Result varchar(max)  
  SET @Result=''  
  SET @i = 1  
  WHILE @i <= LEN(@inputstring)  
  BEGIN  
    SET @Result = SUBSTRING(@inputstring,@i,1) + @Result  
    SET @i=@i + 1  
  END  
  RETURN @Result 
END  
创建函数StringReverse(@inputstring varchar(max))
返回varchar(最大值)
像
开始
声明@i int,
@结果varchar(最大值)
设置@Result=''
设置@i=1

而@i Hi欢迎来到SO。这是家庭作业问题吗?你试过什么?您卡在哪里?为什么不能/不会使用
倒车功能?为什么不使用专门为满足您的要求而设计的工具呢?如果不使用
REVERSE
,这样做的效率会非常低,这是证明
REVERSE
存在的一个很好的理由。如果这只是为了好玩/做作业,那是一回事,如果你认为有实际的操作原因不使用它,那会更有趣。虽然这听起来像是一个重复的问题,但这个被标记为重复的链接问题实际上不是重复的。这个提问者想把“传统”变成“兰诺伊蒂德艺术”。另一个提问者想把“学生”变成“学生A”。那完全不同。对于这个问题,Rishi下面给出的答案实际上是正确的。(完全不知道,为什么不能直接使用REVERSE)。这只是一个开箱即用的问题,如果我们可以使用一些字符串函数来做任何事情的话。你可以考虑做家庭作业。不过,这将是非常明显的。它包含一个
,而
和标量函数本身的执行速度可能非常慢。感谢您提供的信息。我们有什么方法可以在一行代码中实现这一点吗?@SumanthDixit:Newlines在t-SQL中并不重要,所以如果您愿意,可以在一行中全部压缩。如果你的意思是“有没有一个简单的标量表达式没有
REVERSE
”,那么没有——这就是为什么有
REVERSE
。T-SQL无法与现代编程语言相比;它的字符串操作是一个特别的弱点。