かなり無理矢理なのですが、参考にしていただける部分があるのではと思います。
SQL
1#standardSQL
2 WITH data1 AS (
3 SELECT
4 '東京都 イタリアン クーポン デート' AS Search_Word
5 UNION ALL
6 SELECT
7 '東京都 エスニック ワード1 ワード2 ワード3' ),
8 data2 AS (
9 SELECT
10 Search_Word,
11 SPLIT(Search_Word, ' ') AS Search_Word_SPLIT
12 FROM
13 data1 ),
14 data3 AS (
15 SELECT
16 Search_Word,
17 Search_Word_SPLIT[SAFE_ORDINAL(3)] AS keyword3,
18 Search_Word_SPLIT[SAFE_ORDINAL(4)] AS keyword4,
19 Search_Word_SPLIT[SAFE_ORDINAL(5)] AS keyword5,
20 Search_Word_SPLIT[SAFE_ORDINAL(6)] AS keyword6,
21 Search_Word_SPLIT[SAFE_ORDINAL(7)] AS keyword7
22 FROM
23 data2),
24 data4 AS (
25 SELECT
26 Search_Word,
27 CASE i
28 WHEN 3 THEN keyword3
29 WHEN 4 THEN keyword4
30 WHEN 5 THEN keyword5
31 WHEN 6 THEN keyword6
32 WHEN 7 THEN keyword7
33 END AS keyword
34 FROM
35 data3
36 CROSS JOIN
37 UNNEST(GENERATE_ARRAY(3,
38 7)) AS i)
39SELECT
40 *
41FROM
42 data4
43WHERE
44 keyword IS NOT NULL;