SQLite-提取分隔符之间的子字符串以替换功能

我有一个列字段:location。我需要提取第一个和第二个分隔符('/')之间的字符串。

我已经有一列name,其中我ltrim至第一个'/'。我尝试使用rtrimreplacesubstr作为source列的组合来创建类似的查询,但无济于事。这是我的数据。例如,我要提取AML。目前,第一个和第二个定界符之间只有三个选项( value1 value2 value3 ),但以后可能还会更多。

Attribute data
----------+--------------------------------------------------------------------------------------------------------------------
 Field    | First value
----------+--------------------------------------------------------------------------------------------------------------------
 location | './AML/Counties/*****************kyaml_20190416_transparent_mosaic_group1.tif'
 name     | 'kyaml_20190416_transparent_mosaic_group1.tif'
----------+--------------------------------------------------------------------------------------------------------------------

source中的值创建我的列location的最佳方法是什么?

输出应如下所示:

Attribute data
----------+--------------------------------------------------------------------------------------------------------------------
 Field    | First value
----------+--------------------------------------------------------------------------------------------------------------------
 location | './AML/Counties/****************kyaml_20190416_transparent_mosaic_group1.tif'
 name     | 'kyaml_20190416_transparent_mosaic_group1.tif'
 source   | 'AML'
----------+--------------------------------------------------------------------------------------------------------------------

使用@forpas进行的最终查询从下面提供了帮助:

ogrinfo box_tiles.shp -dialect SQLITE -sql \
 "UPDATE box_tiles SET source = \
  substr(\
    substr(location,instr(location,'/') + 1),1,\
    instr(substr(location,'/') - 1)"
zhansir720 回答:SQLite-提取分隔符之间的子字符串以替换功能

使用substr()instr()

select *,substr(
    substr(location,instr(location,'/') + 1),1,instr(substr(location,'/') - 1
  ) as source
from data

请参见demo

,

我使用forpas查询来修改查询。这是我的最终查询

ogrinfo box_tiles.shp -dialect SQLITE -sql \
 "UPDATE box_tiles SET source = \
  substr(\
    substr(location,\
    instr(substr(location,'/') - 1)"
本文链接:https://www.f2er.com/3107871.html

大家都在问