Используя Regexp_substring (), найдите слово, предшествующее слову «OF» (1-е вхождение). Приведенный ниже код не работает, так как Redshift, похоже, не поддерживает сопоставление с не жадными образцами.
Пожалуйста, помогите
select regexp_substr('SAFETY COUNCIL OF PALM BEACH COUNTY, INC. ','[[:print:]].*?\\sOF\\s')
Query execution failed
Reason:
SQL Error [XX000]: ERROR: Invalid preceding regular expression prior to repetition operator. The error occurred while parsing the regular expression fragment: 'rint:]].*?>>>HERE>>>\sOF\s'.
Detail:
-----------------------------------------------
error: Invalid preceding regular expression prior to repetition operator. The error occurred while parsing the regular expression fragment: 'rint:]].*?>>>HERE>>>\sOF\s'.
code: 8002
context: T_regexp_init
query: 0
location: funcs_expr.cpp:189
process: padbmaster [pid=74292]
-----------------------------------------------
Where: SQL function "regexp_substr" statement 1
В настоящее время я использую этот подход, который является потертым и считаю, что должен бытьлучший подход
select 'SAFETY OF COUNCIL OF PALM OF BEACH COUNTY, INC. ' as name, regexp_instr(name,'\\sOF\\s',1) as ind1,substr(name,1,ind1-1) as name_2,regexp_replace(name_2,regexp_substr(name_2,'.*\\s'),'')