1
如何使用Teradata存儲過程語言(SPL)反轉字符串?要求是複製SQL-Server的replace()函數。這可以通過在Teradata中編寫相應的UDF來實現,但我希望使用過程來實現相同的UDF。使用Teradata SPL反轉字符串
該過程可用於在具有reverse()的實際語句中使用該變量之前初始化該變量。
如何使用Teradata存儲過程語言(SPL)反轉字符串?要求是複製SQL-Server的replace()函數。這可以通過在Teradata中編寫相應的UDF來實現,但我希望使用過程來實現相同的UDF。使用Teradata SPL反轉字符串
該過程可用於在具有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;
UDF將是一個更好的解決方案,如果可以在基於SET的操作中使用,而不強制採用程序方法來解決問題。你也可以通過遞歸SQL來完成這個任務,但它又會有一個有限的目的。 – 2012-08-13 13:08:16