使用Teradata SPL反转字符串

时间:2012-08-13 08:51:42

标签: sql string stored-procedures reverse teradata

如何使用Teradata存储过程语言(SPL)反转字符串?要求是复制SQL-Server replace()函数。这可以通过在Teradata中编写相应的UDF来实现,但我希望使用过程来实现相同的目的。

然后可以使用该过程初始化变量,然后在具有reverse()的实际语句中使用该变量。

1 个答案:

答案 0 :(得分:0)

这可以通过他遵循存储过程来实现。

它背后的主要逻辑是在每次迭代中(迭代次数等于字符串的长度),我们将最后一个字母表连接到一个变量。

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;