请帮助我解决问题。
从字符串'/ This / is / apache / drill / queries'中,我希望在Apache Drill上运行的sql查询获取子字符串'drill',该子字符串在第四次出现'/'之后出现
注意:字符串的长度不同,因此'/'的位置也不同。 字符串以'/'
开头在练习中,instr(string,'/',1,4)将不起作用。因此,我无法获得在'/'的第4次出现后出现的字符串。
答案 0 :(得分:3)
钻具有split
UDF,其作用与String.split()
相同,因此此查询:
SELECT split(a, '/')[4] FROM (VALUES('/This/is/apache/drill/queries')) t(a);
将返回期望的结果:
+---------+
| EXPR$0 |
+---------+
| drill |
+---------+
答案 1 :(得分:0)
您可以为此使用REGEXP_REPLACE:
php artisan route:clear
上面的正则表达式查找第四个'/',并从那里获取内容直到第五个'/'。