I have multiple lists, and I want to construct cartesian joins of these lists using SQL. I’m wondering if you know a cleaner method than the one below. Thanks
with letters_table AS (Select letters from UNNEST(['A','B','C']) letters) ,numbers_table AS (Select numbers from UNNEST([1,2,3]) numbers) select letters,numbers,concat(letters,'-',numbers) as concat from letters_table cross join numbers_table
Advertisement
Answer
Your query looks fine, but there is no reason to use CTEs:
select letter, number, concat(letter, '-', number) as concat from unnest(['A', 'B', 'C']) letter cross join unnest([1, 2, 3]) number