在 BigQuery 中构建笛卡尔连接的简洁方法 (SQL)

Clean way to construct cartesian joins in BigQuery (SQL)

我有多个列表,我想使用 SQL 构建这些列表的笛卡尔连接。我想知道您是否知道比下面的方法更简洁的方法。谢谢

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

您的查询看起来不错,但没有理由使用 CTE:

select letter, number, concat(letter, '-', number) as concat
from unnest(['A', 'B', 'C']) letter cross join
     unnest([1, 2, 3]) number

更简洁的版本(BigQuery 标准 SQL)

SELECT letters,numbers, letters || '-' || numbers AS `concat`
FROM letters_table, numbers_table