我有一个列字段:location
。我需要提取第一个和第二个分隔符('/')之间的字符串。
我已经有一列name
,其中我ltrim
至第一个'/'
。我尝试使用rtrim
,replace
,substr
作为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)"