SQLite-提取替换函数分隔符之间的子字符串
我有一个列字段:SQLite-提取替换函数分隔符之间的子字符串,sqlite,replace,trim,substr,ogr,Sqlite,Replace,Trim,Substr,Ogr,我有一个列字段:位置。我需要提取第一个和第二个delimeter('/')之间的字符串 我已经有了一个列名称,其中我ltrim到第一个“/”。我试图创建一个类似的查询,将rtrim、replace、substr组合作为我的源列,但没有成功。以下是我的数据。例如,我想提取AML。现在,第一个和第二个分隔符之间只有三个选项(value1、value2、value3),但以后可能会有更多选项 Attribute data ----------+-----------------------------
位置
。我需要提取第一个和第二个delimeter('/')之间的字符串
我已经有了一个列名称
,其中我ltrim
到第一个“/”
。我试图创建一个类似的查询,将rtrim
、replace
、substr
组合作为我的源
列,但没有成功。以下是我的数据。例如,我想提取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'
----------+--------------------------------------------------------------------------------------------------------------------
使用location
中的值创建我的列source
的最佳方法是什么
输出应如下所示:
Attribute data
----------+--------------------------------------------------------------------------------------------------------------------
Field | First value
----------+--------------------------------------------------------------------------------------------------------------------
location | './AML/Counties/****************kyaml_20190416_transparent_mosaic_group1.tif'
name | 'kyaml_20190416_transparent_mosaic_group1.tif'
source | 'AML'
----------+--------------------------------------------------------------------------------------------------------------------
与及:
请参阅。我使用查询来修改我的查询。这是我的最后一个问题
ogrinfo box_tiles.shp -dialect SQLITE -sql \
"UPDATE box_tiles SET source = \
substr(\
substr(location, instr(location, '/') + 1), 1, \
instr(substr(location, instr(location, '/') + 1), '/') - 1)"
我在项目中的第一步是从csv中的文件列表创建一个shapefile(可以是JSON)索引。输出仅包含几何图形和
位置
字段。我使用了ogrinfo box\u tiles.shp-sql“ALTER TABLE ADD name character(100)
,与源字符(20)相同”
。您的方法可能工作得更好,因为我真正需要的字段只有name
和source
。我可以使用ogr2ogr
和select
语句合并subtr…
来创建我的两个字段。唯一的区别是这会创建一个新文件,而不是编辑一个。两种方法都有效。
ogrinfo box_tiles.shp -dialect SQLITE -sql \
"UPDATE box_tiles SET source = \
substr(\
substr(location, instr(location, '/') + 1), 1, \
instr(substr(location, instr(location, '/') + 1), '/') - 1)"