我希望在PostgreSQL中创建3个不同表中值的所有可能组合,将它们组合为用下划线_分隔的唯一字符串。
例:
table car_type
column 'type' contains: diesel, gasoline, electric
table car_color
column 'color' contains: black, blue, red
table car_stereo
column 'checked' contains: true, false
我想要一个包含所有值的视图:
diesel_black_true
diesel_blue_true
diesel_red_true
diesel_black_false
diesel_blue_false
diesel_red_false
gasoline_black_true
gasoline_red_true
...
希望它有意义,是否有可能以通用和动态的方式?
答案 0 :(得分:3)
您可以Cross Join
表格来获取所有组合
Select t.type||'_'||c.color||'_'||s.checked
From car_type t
Cross join car_color c
Cross join car_stereo s;