如何使用 Teradata 存储过程语言 (SPL) 反转字符串?要求是复制 SQL-Server 的 replace() 函数。这可以通过在 Teradata 中编写相应的 UDF 来实现,但我想使用过程来实现相同的目的。
然后,该过程可用于在变量用于具有 reverse() 的实际语句之前对其进行初始化。
如何使用 Teradata 存储过程语言 (SPL) 反转字符串?要求是复制 SQL-Server 的 replace() 函数。这可以通过在 Teradata 中编写相应的 UDF 来实现,但我想使用过程来实现相同的目的。
然后,该过程可用于在变量用于具有 reverse() 的实际语句之前对其进行初始化。
这可以使用以下存储过程来实现。
其背后的主要逻辑是,在每次迭代中(迭代次数等于字符串的长度),我们将最后一个字母连接到一个变量。
REPLACE PROCEDURE database.REVERSE_STRING(INOUT STRING VARCHAR(20))
BEGIN
--Declare Variables
DECLARE STRING_LOCAL VARCHAR(20); -- Local Copy
DECLARE STRING_LEN VARCHAR(20); -- String Length
--Initialize Variables
SET STRING_LEN = CHARACTER_LENGTH(STRING); -- Find Out the length of string
SET STRING_LOCAL = ''; -- Initialize local copy
--Main Loop
WHILE(STRING_LEN > 0)
DO
SET STRING_LOCAL = STRING_LOCAL || SUBSTR(STRING,STRING_LEN,1); -- In each Iteration copy last alphabet and con cat with STRING_LOCAL
SET STRING_LEN = STRING_LEN - 1; -- Decrease Iterator Value
END WHILE;
SET STRING = TRIM(STRING_LOCAL); -- Return reversed string
END;