问题描述
在sql中(特别是在SNowflake中),我有一个看起来像这样的字符串:
Col_A
afdafe12-123-42141
jkk121jd-313-129en
dje-332-djak
如何制定规则,如果模式以8个字符开头并带有“-”,则标记为“保持”?
我想做一个如下情况的情况:
case when Col_A "regex rule" then 'keep'
when Col_A like 'dje%' then 'remove' else 'disregard' end new_col
from dataframe
解决方法
那将是:
col_a rlike '^.{8}-'
故障:
^ beginning of the string
.{8} any 8 characters
- a dash
或者如果您希望第一个破折号位于字符串的第9位:
col_a rlike '^[^-]{8}-'
...,其中'[^-]'
表示:'-'
以外的任何字符。
您可以使用8个下划线。下划线匹配单个字符
case when Col_A like '________-%' then 'keep'
when Col_A like 'dje%' then 'remove'
else 'disregard' end as new_col
提示:雪花也支持ilike
,这是不区分大小写的like
。您可以根据需要将其交换出去