相关疑难解决方法(0)

如果列存在,则选择columnValue,否则返回null

我想知道如果列存在,我是否可以选择列的值,否则只选择null.换句话说,我想"提升"select语句来处理列不存在时的情况.

SELECT uniqueId
    ,  columnTwo
    ,  /*WHEN columnThree exists THEN columnThree ELSE NULL END*/ AS columnThree
FROM (subQuery) s
Run Code Online (Sandbox Code Playgroud)

请注意,我正在努力巩固我的数据模型和设计.我希望在未来几周内排除这种逻辑,但我真的想超越这个问题,因为数据模型修复比我现在要解决的更耗费时间.

另请注意,我希望能够在一个查询中执行此操作.所以我不是在寻找像这样的答案

首先检查子查询中的列.然后修改您的查询以适当地处理子查询中的列.

sql sql-server select exists

36
推荐指数
3
解决办法
5万
查看次数

BigQuery:TABLE_QUERY但表之间的列不同

我们正在将csv文件加载到BigQuery中.每个文件都将创建一个单独的表.

当我们从这些表中选择时,我们主要使用表查询liek这样做:

SELECT foo, bar
FROM TABLE_QUERY(name_stub,'table_id CONTAINS "_something" and msec_to_timestamp(creation_time) > date_add(current_timestamp(), -90, "day")'));
Run Code Online (Sandbox Code Playgroud)

现在我们已经为新文件添加了新字段.因此,我们现在还有"baz",而不仅仅是字段"foo"和"bar".

当我运行以下查询时,我得到错误,其中一个较旧的表上不存在字段"baz".

SELECT foo, bar, baz
FROM TABLE_QUERY(name_stub,'table_id CONTAINS "_something" and msec_to_timestamp(creation_time) > date_add(current_timestamp(), -90, "day")'));
Run Code Online (Sandbox Code Playgroud)

有没有办法选择"baz"并且只有没有列的表的默认值?

google-bigquery

5
推荐指数
1
解决办法
271
查看次数

Bigquery 如果字段存在

简短:有没有办法在不存在的 BQ 字段中进行查询,并为这些字段接收空值?

我几乎遇到了BigQuery IF 字段存在 THEN 的问题, 但有时我的 API 可以查询没有某些特定字段(历史表)的表,这种方法失败,因为它需要一个包含该字段的表:

SELECT a, b, c, COALESCE(my_field, 0) as my_field
FROM
(SELECT * FROM <somewhere w/o my_field>),
(SELECT * FROM <somewhere with my_field>)
Run Code Online (Sandbox Code Playgroud)

有没有办法做这样的事情:

SELECT IFEXISTS(a, NULL) as the-field
FROM <somewhere w/o my_field>
Run Code Online (Sandbox Code Playgroud)

google-bigquery

4
推荐指数
2
解决办法
5664
查看次数

标签 统计

google-bigquery ×2

exists ×1

select ×1

sql ×1

sql-server ×1