如何用单SELECT语句构建含表A结构仅表B数据的dbt视图?
解决方案
直接从表B中选取所有存在字段,同时显式补充表A中B缺失的字段并赋值为NULL,即可满足所有要求:
SELECT B.id, B.name, B.colour, NULL AS age, NULL AS height, NULL AS gender, B.object FROM B
符合要求的说明:
- 结构与表A完全一致:语句中字段的名称、顺序和表A完全匹配,覆盖A的所有列
- 仅包含表B的全部数据:查询直接基于B表,不会引入A表的额外记录(比如示例中不在A里的
berry也会被包含) - 缺失字段填充NULL:
age、height、gender这三个B没有的字段,通过NULL AS [字段名]显式赋值为NULL
示例执行结果
使用你提供的示例数据,执行上述语句后得到的结果与期望完全一致:
| id | name | colour | age | height | gender | object |
|---|---|---|---|---|---|---|
| 1 | apple | red | NULL | NULL | NULL | fruit |
| 2 | kiwi | green | NULL | NULL | NULL | fruit |
| 3 | berry | pink | NULL | NULL | NULL | fruit |
内容的提问来源于stack exchange,提问作者rxe737
相关产品推荐
相关产品推荐

