gpt4 book ai didi

sql - 使用 SQL 逐字反转字符串

转载 作者:行者123 更新时间:2023-12-04 13:08:21 25 4
gpt4 key购买 nike

我需要反转句子或字符串中的单词位置。

For example : "Hello World! I Love StackOverflow", to be displayed as "StackOverflow Love I World! Hello". 

可以用 SQL 来完成吗? ?字长不大于 VARCHAR2(4000)这是 Oracle VARCHAR2 中的最大长度支持表列。

我只得到了反转字符串(逆序字符)的解决方案

最佳答案

基于 XML 的版本,以避免定义自己的函数; listagg() 需要 11g :

select listagg(word, ' ') within group (order by rn desc) as reversed
from (
select word, rownum as rn
from xmltable('for $i in ora:tokenize($STR, " ") return $i'
passing 'Hello World! I Love StackOverflow' as str
columns word varchar2(4000) path '.'
)
);

REVERSED
----------------------------------------
StackOverflow Love I World! Hello
XMLTable()进行标记,并分配一个行号:
select rownum as rn, word
from xmltable('for $i in ora:tokenize($STR, " ") return $i'
passing 'Hello World! I Love StackOverflow' as str
columns word varchar2(4000) path '.'
);

RN WORD
---------- --------------------
1 Hello
2 World!
3 I
4 Love
5 StackOverflow
listagg()然后以相反的顺序将其拼凑在一起。

关于sql - 使用 SQL 逐字反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com