如何在Snowflake中移除左括号(之前的所有字符?
在Snowflake中保留左括号及之后的所有字符
可以通过两种常用方法实现需求:
方法一:使用POSITION + SUBSTRING函数
利用POSITION定位左括号的位置,再用SUBSTRING截取从该位置到末尾的内容:
SELECT original_string, SUBSTRING(original_string, POSITION('(' IN original_string)) AS trimmed_result FROM ( SELECT 'Hello(World)' AS original_string );
执行后trimmed_result字段会返回(World)。如果原字符串不含左括号,该方法会返回空字符串,若需要保留原字符串可以用NVL处理:
NVL(SUBSTRING(original_string, POSITION('(' IN original_string)), original_string)
方法二:使用正则表达式函数REGEXP_SUBSTR
通过正则匹配\(.*(表示从左括号开始到字符串结尾的所有内容)来提取目标部分:
SELECT original_string, REGEXP_SUBSTR(original_string, '\\(.*') AS trimmed_result FROM ( SELECT 'Hello(World)' AS original_string );
同样,若原字符串无左括号,REGEXP_SUBSTR会返回NULL,可通过NVL(REGEXP_SUBSTR(...), original_string)保留原内容。
内容的提问来源于stack exchange,提问作者VSN
相关产品推荐
相关产品推荐

