提问人:user14262341 提问时间:10/3/2023 最后编辑:logi-kaluser14262341 更新时间:10/4/2023 访问量:74
有没有SQL函数可以帮助我反转字符串的顺序?
Is there a SQL function that can help me reverse an order of a string?
问:
我有这个字符串“Year/Month”,我想把它设为“Month/Year”。
现在我已经研究了该函数,但这会将类似的东西转换为,这不是我想要的。REVERSE
'2023/10'
'01/3202'
然后我想到了正则表达式,但我不确定如何使用正则表达式函数来识别“/”并将“/”前面的所有内容移动到字符串的末尾。
也许类似的东西可以工作?从未使用过这个。REGEX_REPLACE
任何帮助将不胜感激。
答:
4赞
Ross Bush
10/3/2023
#1
如果数据始终按照您的描述进行格式化,并且不需要进行健全性检查,那么一种简单的方法是。
SELECT RIGHT('2023/10',2) + '/'+ LEFT('2023/10',4)
评论
0赞
user14262341
10/4/2023
嗨,这是正确的答案,非常感谢
0赞
Ross Bush
10/5/2023
没关系。我很高兴它有所帮助。
0赞
Iman_Ghavasieh
10/3/2023
#2
我建议使用字符串运算符。我在 PostgreSQL 中写了一个答案,但几乎每个 SQL 数据库都以相对相同的方式具有此功能,您应该阅读文档。
(编辑:我已经对其进行了一点修改,现在它也可以在MySQL上运行)
正如PostgreSQL文档中所写的,我们有一个函数和一个函数。因此,您需要做的就是从“YYYY/MM”字符串中获取最后两个字符,将其与“/”字符连接,然后将结果与前四个字符连接。substring
concat
select concat(substring('2023/10' from 6 for 2), '/', substring('2023/10' from 1 for 4))
// response: '10/2023'
评论
REGEX_REPLACE(column, '(\d+)/(\d+)', '$2/$1')