STackoverflow #8844796

0

Please login or register to vote for this query.

(click on this box to dismiss)

スタック・オーバーフローMeta

プログラマーと熱狂的なプログラマーのためのサイトに関する質問と回答

with t as (
  select '28 Smith Avenue^MOOROOLBARK VIC 3138^' as str
  union
  select '16 Farr Street^HEYFIELD VIC 3858^' as str
  union
  select '17 Terry Road^LOWER PLENTY VIC 3093^' as str
), t1 as (
  select
    str,
    left(str, charindex('^', str) - 1) as street_address,
    reverse(substring(reverse(str), 2, 4)) as postal_code,
    rtrim(reverse(substring(reverse(str), 6, len(str) - charindex('^', str) - 5))) as second_part
  from t
)
select 
  street_address,
  postal_code,
  left(second_part, len(second_part) - charindex(' ', reverse(second_part))) as city,
  right(second_part, charindex(' ', reverse(second_part))) as state
from t1

Enter Parameters

Options:
Switch to main site
loading Hold tight while we fetch your results