站长网 MsSql教程 sql-server – 使用T-SQL测试字符串是否为回文结构

sql-server – 使用T-SQL测试字符串是否为回文结构

我是T-SQL的初学者.我想确定输入字符串是否是回文结构,如果不是则输出= 0,如果是,则输出= 1.我还在弄清楚语法.我甚至没有收到错误消息.我正在寻找不同的解决方案和一些反馈,以便更好地理解和了解T-SQL如何工作,变得更好 – 我仍然是学生. 正如我所看到的,

我是T-SQL的初学者.我想确定输入字符串是否是回文结构,如果不是则输出= 0,如果是,则输出= 1.我还在弄清楚语法.我甚至没有收到错误消息.我正在寻找不同的解决方案和一些反馈,以便更好地理解和了解T-SQL如何工作,变得更好 – 我仍然是学生.

正如我所看到的,关键的想法是将左右两个字符相互比较,检查是否相等,然后继续比较左边的第二个字符和最后一个字符,等等.我们做一个循环:如果角色彼此相等,我们继续.如果我们到达终点,我们输出1,如果不是,我们输出0.

请你批评:

CREATE function Palindrome(
    @String  Char,@StringLength  Int,@n Int,@Palindrome BIN,@StringLeftLength  Int
)
RETURNS Binary
AS
BEGIN
SET @ n=1
SET @StringLength= Len(String)

  WHILE @StringLength - @n >1

  IF
  Left(String,@n)=Right(String,@StringLength)

 SET @n =n+1
 SET @StringLength =StringLength -1

 RETURN @Binary =1

 ELSE RETURN @Palindrome =0

END

我认为我走在正确的轨道上,但我还有很长的路要走.有任何想法吗?

解决方法

如果您使用的是SQL Server,可以使用
REVERSE()功能进行检查吗?

SELECT CASE WHEN @string = REVERSE(@String) THEN 1 ELSE 0 END AS Palindrome;

包括Martin Smith的评论,如果你在SQL Server 2012上,你可以使用IIF()功能:

SELECT IIF(@string = REVERSE(@String),1,0) AS Palindrome;

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/jc/mssql/2021/0524/5804.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部