Reputation: 259
I need to extract the day and month from a campaign code, but my query only returns NULL values. The day and month always follow the format of 'mmmdd' (e.g., aug23, sep12, oct09) although the campaign values vary in total length.
Sample Query:
SELECT Campaign,
Year,
REGEXP_SUBSTR(campaign, '[a-z]{3}\d{2}') AS Month_Day
FROM GA_CAMPAIGN
Sample Table:
Campaign | Year | Month_Day
TL-17-push-general-sep15septemberhighlights-0-0-0- | 17 | NULL
FA-17-stoke-aug09augusthighlights-0-0-0-0-0 | 17 | NULL
Desired Output:
Campaign | Year | Month_Day
TL-17-push-general-sep15septemberhighlights-0-0-0- | 17 | sep15
FA-17-stoke-aug09augusthighlights-0-0-0-0-0 | 17 | aug09
Thank you in advance!
Upvotes: 0
Views: 150
Reputation: 14045
The \d
is not working as you expect. Try using [0-9]
instead.
WITH sample AS (
SELECT 'TL-17-push-general-sep15septemberhighlights-0-0-0' campaign
UNION ALL SELECT 'FA-17-stoke-aug09augusthighlights-0-0-0-0-0' campaign
)
SELECT campaign,
REGEXP_SUBSTR(campaign, '[a-z]{3}[0-9]{2}') AS Month_Day
FROM sample
;
-- campaign | month_day
-----------------------------------------------------+-----------
-- TL-17-push-general-sep15septemberhighlights-0-0-0 | sep15
-- FA-17-stoke-aug09augusthighlights-0-0-0-0-0 | aug09
Upvotes: 1