在一列中,如果该列中有一个字符串
col1
,如'abc_def'
,我可以像这样拆分并取出部分
split(col1, '_')[0]
在同一列中,如果有另一个值,如'abc_def_xyz'
,我需要采取'abc_def'
。基本上我需要排除最后一部分。
实现这一目标的最佳方法是什么?
我无法使用
split
和 regex_replace
功能来实现此目的
我们首先用“_”分隔列。然后我们将其从 0 切片到 -1,留下创建的数组的最后一个元素。然后再次将剩余的转换回字符串。
SELECT
col1,
ARRAY_TO_STRING(ARRAY_SLICE(SPLIT(col1, '_'), 0, -1), '_') AS exc_last
FROM your_table_name;