【发布时间】:2017-11-29 04:18:12
【问题描述】:
我有一个包含全名的学生信息表和一个名字列表。
full_names first_names
--------------- -------------
john adam smith john
jane anna doe jane
michael brown bob
我想选择全名包含长名列表中的任何一个的学生。例如,John Adam Smith 包含单词john,我想选择该行。 Michael Brown 与任何名称都不匹配,所以我不想要它。
我可以这样做,但输入 300 多个名字会效率低下。
SELECT names
FROM full_names
WHERE names CONTAIN 'john'
OR names CONTAIN 'jane'
OR names CONTAIN 'bob'
...
(300 more rows)
我的尝试 - 将名称列表放入第二个表 first_names,并尝试从第一个表中选择第二个表中的名称。
SELECT names
FROM full_names
WHERE names CONTAINS
(SELECT names
FROM first_names);
但是,我得到了错误:
Error: ELEMENT can only be applied to result with 0 or 1 row.
有没有更好的方法?
【问题讨论】:
标签: sql google-bigquery