我有一個名爲geo_data_display的字段,其中包含國家,地區和dma。這3個值包含在第一個「=」和第一個「&」之間的字符,第二個「=」和第二個「&」之間的區域和第三個「=」和第三個「=」之間的DMA之間的國家, &「。這是一個可重新生成的表格。國家總是字符,但地區和DMA可以是數字或字符和DMA不存在所有國家。使用配置單元SQL提取不同字符之間的字符串
幾個樣本值是:
country=us®ion=tx&dma=625&domain=abc.net&zipcodes=76549
country=us®ion=ca&dma=803&domain=abc.com&zipcodes=90404
country=tw®ion=hsz&domain=hinet.net&zipcodes=300
country=jp®ion=1&dma=a&domain=hinet.net&zipcodes=300
我有一些樣本SQL但geo_dma行代碼不是在所有的工作和GEO_REGION代碼行僅適用於字符值
SELECT
UPPER(REGEXP_REPLACE(split(geo_data_display, '\\&')[0], 'country=', '')) AS geo_country
,UPPER(split(split(geo_data_display, '\\&')[1],'\\=')[1]) AS geo_region
,split(split(cast(geo_data_display as int), '\\&')[2],'\\=')[2] AS geo_dma
FROM mytable
完美,謝謝! –
當DMA不存在時,過度複雜並返回錯誤結果。 –