我的列中包含多个值,格式为:
[word] - [word] - [word] - [word]
所以它看起来像:
GEO - MRVES - EKBASDSS - MO
如何编写将提取第一部分的查询
所以从上面的例子我想要“GEO - MRVES
”。每个值都没有设定长度。
答案 0 :(得分:1)
您可以使用regexp_substr()
:
select regexp_substr(col, '[^-]+-[^-]+', 1, 1)
答案 1 :(得分:1)
使用SUBSTR
和INSTR
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, '-', 1, 2) -1) AS col_one
FROM your_table t;
使用INSTR查找-
的第二次出现,并从字符串的开头切换到该位置 - 1