在 SQL Server 中逐字反向语句
要在 SQL 服务器中逐字反转任何语句,我们可以使用 SUBSTRING函数,它允许我们提取和显示字符串的一部分。
先决条件:SUBSTRING函数
方法 :
- 使用 DECLARE 语句声明了三个变量(@Input、@Output、@Length)。
- 使用 WHILE 循环迭代 @Input 中存在的每个字符。对于 SQL Server while 循环内部的条件,使用 SQL LEN函数检查 Input 的长度是否大于 0。
- 在while循环中,使用SUBSTRING函数设置@Output值三个参数,分别是Input、起点、终点。这里我们将 Input 分配为 @Input,使用起点为 0。
- 使用 CHARINDEX函数查找“ ”,以便端点位于空格之前。
- 现在,将此添加到@Output,并且在循环开始时为空。
- 要更新 @Input 变量,请使用 SUBSTRING函数。在这里,我们将 Input 分配为 @Input。
- 接下来,使用SQL CHARINDEX函数查找空白空间,然后我们加1,以便起点在空格之后。
- 然后,使用 SQL LEN函数指定结束值。
- 在 SET @Output 中,它从 0 个索引开始提取单词,一直到空白处。这将是第一个词。
- 一旦它得到第一个单词,它就会使用 SET @Input 代码从 @Input 中删除该单词。
输入 :
欢迎使用 Geeksforgeeks 上的 SQL Server 教程。
例子 -
DECLARE @Input VARCHAR(MAX)
DECLARE @Output VARCHAR(MAX)
DECLARE @Length INT
SET @Input = 'Welcome to SQL Server
Tutorial on Geeksforgeeks.'
SET @Output = ''
WHILE LEN(@Input) > 0
BEGIN
IF CHARINDEX(' ', @Input) > 0
BEGIN
SET @Output = SUBSTRING
(@Input, 0, CHARINDEX(' ', @Input))
+ ' ' + @Output
SET @Input = LTRIM
(RTRIM
(SUBSTRING
(@Input, CHARINDEX
(' ', @Input) + 1, LEN(@Input))))
END
ELSE
BEGIN
SET @Output = @Input + ' ' + @Output
SET @Input = ''
END
END
SELECT @Output
输出 :
Geeksforgeeks. on Tutorial Server SQL to Welcome
使用 SQL Server Management Studio 输入和输出: