我需要用 Redshift 中表中的值替换输入字符串
我在 SQL 中有这个函数,可以用表中的值替换输入字符串。我无法让它在 Redshift 中工作,因为它不接受 FROM 子句。想法?
CREATE FUNCTION [dbo].[udf_StringReplace](@str VARCHAR(200))
RETURNS VARCHAR(200)
WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
AS
BEGIN
SELECT @str = REPLACE(UPPER(@str),find,sub)
FROM [dbo].[StringReplace]
RETURN @str
END
我尝试对其进行转换,但并非没有运气,我想不出完成任务的方法。
我尚未测试此代码,但您可以创建一个替换字符串的 Python UDF。比如:
create or replace function substitute (in_string varchar)
returns varchar
stable
as $$
words = {'from_this': 'to_this', 'in': 'out', 'source': 'sink'}
if in_string.lower() in words:
return words[in_string.lower()]
else:
return in_string
$$ language plpythonu;
像这样使用它:
select name, substitute(name) from table