我的表中有一列,其条目如下:
this/is/my/dir/file
this/is/my/another/dir/file
我要显示不带文件名的字符串:
this/is/my/dir/
由于某些条目具有较大的路径,因此我无法真正计算/。 如何在不计算每个条目的/的情况下实现这一目标?
答案 0 :(得分:1)
好的,您可以使用regexp_replace
删除file
并仅保留目录路径,因为我们知道文件名不包含字符'/'并且始终位于文件末尾dir路径,因此regexp可以写为'[^/]+$'
,如下例所示,这意味着用regexp '[^/]+$'
替换子字符串为空的''
。
select regexp_replace('/this/is/my/dir/file','[^/]+$','') as dir;
+-------------------+
| dir |
+-------------------+
| /this/is/my/dir/ |
+-------------------+
select regexp_replace('this/is/my/another/dir/file','[^/]+$','') as dir;
+--------------------------+
| dir |
+--------------------------+
| this/is/my/another/dir/ |
+--------------------------+