IF字段存在于StandardSQL中

时间:2019-11-05 21:32:25

标签: google-bigquery

我有一个包含以下列的表:

  1. 苹果
  2. 香蕉
  3. 桃子-但是,此列可能会也可能不会 出现。该表每5小时放置和加载一次,我需要 准备应对“桃子”列不可用的情况。

我在StackOverflow上发现了几个类似的问题,但是他们都使用LegacySQL来解决问题。

我正在尝试这样的事情:

选择* 从project.dataset.fruits

存在的地方(   选择桃子   从project.dataset.fruits )

如果“水果”表当前没有该列并且整个查询失败,该代码会告诉我“ peches”是未知名称。

有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

以下是用于BigQuery标准SQL

#standardSQL
SELECT * FROM `project.dataset.fruits`
WHERE EXISTS (
  SELECT 1 FROM `project.dataset.fruits` t
  WHERE REGEXP_CONTAINS(TO_JSON_STRING(t), '[{,]"peaches":')
  LIMIT 1
)

答案 1 :(得分:0)

您可以使用INFORMATION_SCHEMA

SELECT
 1
FROM
 `project.dataset.INFORMATION_SCHEMA.COLUMNS
WHERE
 table_name="fruits" AND column_name="peaches"