regex 有没有一个SQL函数可以帮助我反转字符串的顺序?

35g0bw71  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(97)

我有这个字符串'年/月',我想让它'月/年'。
现在我已经研究了REVERSE函数,但这会将类似'2023/10'的东西转换为'01/3202',这不是我想要的。
然后我想到了一个正则表达式,但我不确定如何使用正则表达式函数来识别'/'并将'/'前面的所有内容移动到字符串的末尾。
也许像REGEX_REPLACE这样的东西可以工作?从来没用过这个。
任何帮助将不胜感激。

u1ehiz5o

u1ehiz5o1#

如果数据总是按照您所描述的格式进行格式化,并且不需要进行完整性检查,那么一种直接的方法是。

SELECT RIGHT('2023/10',2) + '/'+ LEFT('2023/10',4)
ruyhziif

ruyhziif2#

我建议使用字符串操作符。我用PostgreSQL写了一个答案,但几乎每个SQL数据库都以相对相同的方式具有此功能,您应该阅读文档。
(Edit:我稍微修改了一下,现在MySQL上也能用了
在PostgreSQL documentation中,我们有一个substring函数和一个concat函数。所以你需要做的就是从一个'YYYY/MM'字符串中获取最后两个字符,用一个'/'字符连接它,然后用前四个字符连接结果。

select concat(substring('2023/10' from 6 for 2), '/', substring('2023/10' from 1 for 4))
// response: '10/2023'

相关问题