我需要从SQLite中的路径中分离出文件扩展名。我已经阅读了这里的帖子(SQLite: How to select part of string?),其中获得了99%。
然而,解决方案:
select distinct replace(column_name, rtrim(column_name, replace(column_name, '.', '' ) ), '') from table_name;
如果一个文件没有扩展名(即文件名中没有'.'),它将返回一个空字符串。有什么方法可以捕获这个吗?
注意,在这个上下文中,文件名是最后一个'\'
之后的位-它不应该在完整路径中搜索'.'s
,因为它现在也在搜索。
我认为应该可以使用进一步嵌套的rtrims
和replaces
来实现。
2条答案
按热度按时间06odsfpq1#
谢谢。是的,你可以这样做:
1)在SQLiteStudio的QtScript中创建一个名为“extension”的标量函数
2)代码如下:
3)然后,在SQL查询编辑器中,可以使用
...从名为DATA的表中名为PATH的列中逐项列出不同的文件扩展名。
注意,在这个实现中,PATH字段必须包含一个反斜杠('')-即它必须是一个完整的路径。
webghufk2#
要满足您问题中的此要求:* “如果文件没有扩展名(即文件名中没有'.'),则应返回空字符串。"*
只需在语句中添加CASE WHEN LIKE,如下所示:
或者更容易阅读(相同代码):