BigQuery将清单连结成带引号的字串

时间:2019-05-01 17:18:21

标签: sql google-bigquery

示例表1:

ID   Color
143  Blue 
213  Black
934  Green
902  Red
894  Orange

我正在寻找的结果是这样的字符串=('143','213','934','902','894')

我从“ SELECT ID FROM Table1 GROUP BY ID”开始

我知道我可以像这样写一个长的手动语句:“'” +从Table1 LIMIT 1的SELECT ID +“','” +从Table1 LIMIT 1的SELECT ID偏移1 +“','” + ...

但是我的实际表长10万行,带有2000+个唯一ID,所以这是不可能的。

2 个答案:

答案 0 :(得分:2)

set1 = set(list1)
set2 = set(list2)
set3 = set(list3)
set4 = set(list4)

print((set1 ^ set2 ^ set3 ^ set4) - (set1 & set2 & set3 & set4))
#{0, 1, 4, 'a'}

这假设#standardSQL SELECT STRING_AGG(DISTINCT CONCAT("'", CAST(id AS STRING), "'")) FROM `project.dataset.table` 字段不是字符串-但如果它已经是字符串-您可以省略CAST的使用

答案 1 :(得分:1)

一种方法是:

SELECT CONCAT("('",
              STRING_AGG(DISTINCT CAST(id AS STRING), "','"),
              "')"
             )
FROM t;