【发布时间】:2017-12-01 13:03:06
【问题描述】:
我有一列包含这样的数据:
/hey[my]/file/exec[jhwwdfbfjuneinfcvdkvnkdvn]
我想编写一个 sql 查询来仅从该列中获取“文件”。 我想在第 3 次出现 '/' 字符之后和第 2 次出现 '/' 字符之前修剪字符串。文件字符串是动态的,每条记录的文件名都不一样,所以不能用like。
SELECT SUBSTRING(col, LEN(LEFT(col, CHARINDEX ('/', col))) + 1, LEN(col) - LEN(LEFT(col, CHARINDEX ('/', col))) - LEN(RIGHT(col, LEN(col) - CHARINDEX ('/', col))) - 1);
结果 - LINE 1: SELECT SUBSTRING(s.value, LEN(LEFT(s.value, charindex ('/', ...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
s.value 的数据类型是文本。 我在 postgresql 数据库中应用这个查询。
我不知道如何给出sql查询中的出现。
【问题讨论】:
-
请不要使用不适用于您的问题的标签。我删除了数据库标签,因为不清楚您实际使用的是哪一个。请添加only你实际使用的数据库的标签
-
好!当您这样做时,如果您遇到任何问题,请随时回来询问!
-
向我们展示数据库架构、示例数据、当前和预期输出。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。
-
你可以在php中使用
explode() -
你试过什么?向我们展示您当前的查询尝试。
标签: sql postgresql