split.sql 604 B

12345678910111213141516171819202122
  1. -- Experiments with creating dummy records and splitting strings to create new columns
  2. --
  3. -- https://stackoverflow.com/questions/44056274/splitting-substrings-and-creating-new-columns-for-each-in-big-query
  4. -- Create a dummy record
  5. WITH dummy as (
  6. SELECT "foo" as foo, 1 as bar, "a;b;c" as baz
  7. )
  8. -- Split out a semicolon separatated field
  9. ,splitup as (
  10. SELECT
  11. foo,bar,split(baz,";") as baz_split
  12. FROM dummy
  13. )
  14. -- create new columns from the split values
  15. SELECT foo,
  16. bar,
  17. baz_split[OFFSET(0)] AS thing1,
  18. baz_split[OFFSET(1)] AS thing2,
  19. baz_split[OFFSET(2)] AS thing3
  20. from splitup