Sql 大查询表中列的默认值

Sql 大查询表中列的默认值,sql,google-bigquery,google-cloud-platform,Sql,Google Bigquery,Google Cloud Platform,有没有办法在大查询中为表中的列设置默认值?我想将“false”设置为布尔数据类型列的默认值。可为空的列可以(通常)具有空的默认值,但在BigQuery中没有其他默认概念(您可以插入特定值或忽略该值,它将具有空值) 也就是说,如果您想在视图中包装原始表,可以将空列值映射到您喜欢的任何默认值。BigQuery中的列没有默认值 简单的方法就是使用NULL(在大多数情况下,从需求角度来看,这应该是可以接受的) 还要考虑这方面的成本——将NULL存储为默认成本为零,而将实际值存储为列大小乘以具有默认值的行

有没有办法在大查询中为表中的列设置默认值?我想将“false”设置为布尔数据类型列的默认值。

可为空的列可以(通常)具有空的默认值,但在BigQuery中没有其他默认概念(您可以插入特定值或忽略该值,它将具有空值)


也就是说,如果您想在视图中包装原始表,可以将空列值映射到您喜欢的任何默认值。

BigQuery中的列没有默认值
简单的方法就是使用NULL(在大多数情况下,从需求角度来看,这应该是可以接受的)
还要考虑这方面的成本——将NULL存储为默认成本为零,而将实际值存储为列大小乘以具有默认值的行数

若NULL对您有效,但您仍然需要在应用程序中使用实际的默认值—您可以使用字段描述来存储有关此字段的一些元数据,包括默认值,这样应用程序就能够检索它并基于任何应用程序逻辑来使用它


在BigQuery中-View是公开实际默认值的最佳方式

虽然不能在表级别设置默认值,但如果出于您的目的,可以在插入时在SQL中设置默认值。您可以使用
IF()
,如下所示:

从`表中选择IF(字段不为空,字段为“默认”)`

事实上,你可以做任何使你的船漂浮的条件表达式。

你应该根据你的需要进行更多的扩展。关于成本,如果一列是
非空的
,那么
默认值
就不必存储,至少在
默认值
或可空性改变之前是这样。