Sql REGEXP bigquery
我想删除“OLD_DATA”列中包含以下数据的前四个字母—(删除前面的所有数据):)并保留其余数据Sql REGEXP bigquery,sql,google-bigquery,Sql,Google Bigquery,我想删除“OLD_DATA”列中包含以下数据的前四个字母—(删除前面的所有数据):)并保留其余数据 ----------------------- ----------------------- OLD_DATA (before) NEW_DATA(after) ---------------------- ---------------------- abc:cdef-1
----------------------- -----------------------
OLD_DATA (before) NEW_DATA(after)
---------------------- ----------------------
abc:cdef-12E456-AB cdef-12E456-AB
cdef-12E456-AB-12E456-AB cdef-12E456-AB
bcd:ghij-12E456-BS ghij-12E456-BS
abc:cdef-12E456-AB cdef-12E456-AB
cdef-12E456-AB cdef-12E456-AB
ghij-12E456-BS ghij-12E456-BS
bcd:ghij-12E456-BS ghij-12E456-BS
cdef-12E456-AB cdef-12E456-AB
abc:cdef-12E456-AB cdef-12E456-AB
abc:cdef-12E456-AB cdef-12E456-AB
------------------------- -------------------------
我编写了以下代码:REGEXP_EXTRACT(TABLE
.OLD_DATA,r'(\w*):')作为新的_数据:按预期将前三个字母分隔到单独的列中,但不从实际数据中删除
此代码:REGEXP_提取(TABLE
.OLD_DATA,r':(\w*))作为新的_数据
分隔“:”和第一个“-”之间的值,它们是5到10个字母
任何建议…嗯。我想到了:
select regexp_replace(data, '^...:', '')
请注意,这回答了您的问题,但不会产生所需的输出,因为两者不同步。是否可以去掉任何“空”、“空”、“0”和“1”此旧数据列中的值…?请给出一个示例实际旧数据表,其中没有数据、空或1或0数据。抱歉,当类型为注释时,格式似乎错误“HPLA-19C204-BB GX63-14C151-AC FW93-19C204-BG JPLA-19C204-BB HPLA-19C204-BA null 1 HPLA-19C204-BF 0 JX63-19C204-BB null GX63-19C204-BB HPLA-19C204-BE JPLA-19C204-BA”在REGEXP_包含的位置添加类似于
的内容(旧_数据,r'.*-.-.-.-.-.-.*-.*)
到querygreat的结尾。什么时候你会在SO上有足够的声誉-回来看看有什么进展:o)
#standardSQL
SELECT REGEXP_REPLACE(old_data, r'^\w*:', '') as new_data
FROM table