包含文件名的表格列:image1.jpg,image12.png,script.php,.htaccess,...
我只需要选择文件扩展名。我更愿意这样做:
SELECT DISTINCT SUBSTR(column,INSTR('.',column)+1) FROM table
但我的SQLite版本不支持INSTR。
有没有办法在不使用INSTR功能的情况下实现它?
答案 0 :(得分:7)
下面是查询(经过测试和验证)
仅用于选择文件扩展名。您的文件名可以包含任意数量的.
个字符串 - 它仍可以使用
select distinct replace(column_name,rtrim(column_name, 从table_name;
替换(column_name,'。','')),'')
column_name
是您拥有文件名的列的名称(文件名可以有多个.
的
table_name
是您表格的名称
答案 1 :(得分:5)
尝试使用ltrim(X, Y)
功能,这就是the doc所说的内容:
ltrim(X,Y)函数返回一个字符串,该字符串是通过从X的左侧删除Y中出现的任何和所有字符而形成的。
将所有字母列表列为第二个参数,例如
SELECT ltrim(column, "abcd...xyz1234567890") From T
应删除从左到右的所有字符.
。如果您需要不带点的扩展名,请在其上使用SUBSTR
。当然这意味着文件名可能不包含多一个点。
但我认为在执行查询的代码中提取扩展名更简单,更安全。